XSS跨站脚本执行漏洞
漏洞描述
渗透测试人员发现,在实时营销策略管理中的策略编码和策略名称中填入<img src=x οnerrοr='alert(document.cookie)';>发现会显示cookie,抓包发现EVENT_ID,EVENT_NAME两个字段存在xss漏洞。




漏洞建议
对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、REFERER、POST数据等,仅接受 指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。尽量采用POST 而非GET 提交表单;对"<",">",";","'","javascript","jscript","vbscript"等字符做过滤。
1.在HTML/XML中显示"用户可控数据"前,应该进行html escape转义。
2.在javascript内容中输出的"用户可控数据",需要做javascript escape转义。
3.对输出到富文本中的"用户可控数据",做富文本安全过滤(允许用户输出HTML的情况)。
4.输出在url中的数据,做url安全输出。
脆弱性评价:
| 严重程度 | 高 | ■ | 中 |
| 低 |
|
处理过程:
配置说明:
问题描述:防止XSS跨站漏洞
改造:修改项目框架的web.xml文件,增加过滤器filter对请求进行拦截过滤;
检查lib目录下nanny-0.1.jar是否存在
部署完,需要重启项目
web.xml:
<filter>
<filter-name>NXSSFilter</filter-name>
<filter-class>com.linkage.nanny.filter.XSSFilter</filter-class>
<init-param>
<param-name>dealClasses</param-name>
<param-value>com.linkage.nanny.server.impl.SimpMateMachine,com.linkage.nanny.server.impl.UrlForborbiddenMateMachine</param-value>
</init-param>
<init-param>
<param-name>com.linkage.nanny.server.impl.SimpMateMachine</param-name>
<param-value>script,delete,update,drop,truncate,create,select,alert</param-value>
</init-param>
<init-param>
<param-name>com.linkage.nanny.server.impl.UrlForborbiddenMateMachine</param-name>
<param-value>0x12,0x10,%0D,%0A,0x0d,0x0a,%0a,%0d,%0d0a,0x0d0a,0x13</param-value>
</init-param>
<init-param>
<param-name>sessionName</param-name>
<param-value>BSS_JSESSIONID</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>NXSSFilter</filter-name>
<url-pattern>/salemanm/salemanm</url-pattern>
</filter-mapping>
<filter>
<filter-name>XSSChecker</filter-name>
<filter-class>org.redswallow.filter.RedSwallowFilter</filter-class>
<init-param>
<param-name>redswallow.filter.plugin.htmlescapechar.config.includeParamPatterns</param-name>
<param-value>sp,service,staffId,STAFF_ID,cond_SERIAL_NUMBER</param-value>
</init-param>
<init-param>
<param-name>redswallow.filter.charset</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>XSSChecker</filter-name>
<url-pattern>/salemanm/salemanm</url-pattern>
</filter-mapping>
<filter>
<filter-name>XSSFilter</filter-name>
<filter-class>com.linkage.nanny.filter.XSSFilter</filter-class>
<init-param>
<param-name>dealClasses</param-name>
<param-value>com.linkage.nanny.server.impl.SimpMateMachine</param-value>
</init-param>
<init-param>
<param-name>com.linkage.nanny.server.impl.SimpMateMachine</param-name>
<param-value>script,alert,|,;,$,%,@,',",\',\",(),+,CR,LF,\</param-value>
</init-param>
<init-param>
<param-name>whitelist</param-name>
<param-value>ajaxDirect,ajax</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>XSSFilter</filter-name>
<url-pattern>/salemanm/salemanm</url-pattern>
</filter-mapping>
jar包:
本文详细介绍了XSS跨站脚本执行漏洞,描述了渗透测试中发现的问题,建议进行可靠的输入验证和内容转义,并提供了脆弱性评价及具体的处理步骤,包括修改web.xml配置和过滤器设置。
371

被折叠的 条评论
为什么被折叠?



