詹总,你好!最近系统做安全扫描,出现了一个xss漏洞。
我使用XSSHttpHandler做了安全过滤
但是目前有一个问题,如果是跟随文件上传的表单提交的参数,并不会进行参数的过滤。因此我进行了request请求类型的判断
如果是multipart/form-data类型的请求,重新封装request,
但是依旧不起作用,想问问怎么处理呢?
--------------------------------------------------------------------------分割线----------------------------
经过研究代码发现了一些问题,不太清楚是不是分析的正确,请各位拍砖。
在普通表单post提交的时候,只要经过xss处理,就可以完成xss漏洞攻击。但是如果是文件上传类的表单提交后,request会被框架包装成MultipartRequest。下面是源码截图:
在MultipartRequest中重写了几个必要方法,但是这几个方法并没有办法进行xss的过滤,会导致文件上传的地方存在xss漏洞的攻击。
目前我系统中的上传表单的截图如下:
如果将升级包名称中填入: <img src=1 onerror=alert(1)> ,肯定会出现xss攻击漏洞。
因此修改策略为,重写com.jfinal.upload.MultipartRequest类,将此类中几个方法进行xss过滤
--------------------------------------------------------------------------2021.2.24追加----------------------
如果通过postman提交时,文件名称进行xss攻击,在回显文件名称的时候,就会出现xss漏洞。
当然,你也可以通过将原 request 包装一下
你的封装我觉得差不多了,可能还有一些方法没有过滤,打开 HttpServletRequest 源码,看看里面有什么方法可疑,然后再将这些方法也过滤一下