2.1 XSS漏洞
基于特征值匹配来进行检测的XSS漏洞类型,其常见的检测逻辑如图 3 所示,是一个反复探测和验证的过程。
扫描器通过爬虫爬取Web站点的有效链接后,传递给相关插件进行探测扫描。插件在获取链接后,需要判断此链接是否有存在该漏洞的条件,抽取所有可能存在漏洞的位置点,构造请求URL和参数值去探测和发包,根据该漏洞的表现形式来判断返回的页面是否存在漏洞。
图3基于特征值匹配的检测逻辑
对应的特征值匹配检测逻辑条件满足后,漏洞发现条件也同步形成。此时,扫描器会把如下内容一一罗列出来:尝试探测的URL链接,具体的请求方式,在哪个参数字段上构造的特征值,相关的判断标准,最终构造的请求变量和URL语句函数,执行结果与预期结果的差异,页面请求和响应报文结果等漏洞确认的详情。
如图4所示,以探测http://demo.testfire.net/search.aspx?txtSearch=1是否存在跨站漏洞为例,判断标准中给出了是否存在跨站的判断,能够执行构造的特殊字符串。判断执行详情中给出了具体构造的请求URL、修改的参数及参数值。过程报文中的请求及响应页面内,匹配到注入的字符串afbkyz(ozn),在判断是否可以真正被浏览器执行后,在响应页面中(图5)高亮可以被执行的位置。
图4 漏洞分析示例
图 5 高亮注入点
这样,就为此类XSS漏洞的发现提供了一个完整的检测可视化过程,让评估者清晰知晓XSS漏洞存在的相关判断依据、具体位置及如何验证和结果对比等。
