XSS漏洞扫描经验分享
关于XSS漏洞扫描,现成的工具有不少,例如paros、Acunetix等等,最近一个项目用扫描工具没有扫出漏洞,但还是被合作方找出了几个漏洞。对方找出的漏洞位置是一些通过javascript、ajax方式向后台发出的请求,这些用工具都没有扫描出来,看来找漏洞还是需要工具加手工结合起来。
怎么样用手工的方法来找,我们用了比较原始的方法,人手从后台代码里面找出所有会接收前台请求的地方,把请求的路径、参数等等全部列出来,然后在逐条检查是否存在漏洞。
当然,因为能够接收请求的位置太多了,全部用人工方式逐条检查的话太辛苦了,所以我们还是用了一些自己编写小工具的来帮忙。
工具的原理就是先用一个excel记录每个请求的controller、action、param和value,然后用程序读取并拼接成一个请求,发送到服务器获取返回信息。之后通过字符比较或者正则检查返回信息中是否包含请求中的一些关键字,如果有,则表示可能存在漏洞,需要进一步排查。
通过使用小工具可以过滤掉大量安全的请求,少量可能存在漏洞的请求的再用人工方法检查,大大减少了工作量。而整个测试的难点就在于找齐所有的请求,这个需要开发人员帮忙,也是一项非常费时费力的工作。
工具的代码上传到了github: https://github.com/pascocai/url-scan
后来想想,其实使用JMeter也应该也可以做到,具体还没有操作,待以后实操可行之后再补充具体做法。