【BurpSuite工具系】使用BurpSuite一次完整的测试XSS漏洞

测试前准备

关于浏览器网络代理设置、ssl证书等准备工作,请参考我另一篇文章使用BurpSuite一次完整的测试CSRF漏洞

提前先安装下XSS Validator插件进行XSS漏洞检测

 XSS Validator 插件使用用例图

  1. Intruder使用了XSS Validator的payload生成器,将插件与Intruder两者联动合起来。
  2. 插件对Intruder发送的消息进行拦截处理,转交phantomjs服务监听端口处理。
  3. xss.js请求真实的web服务器,并对消息进行处理,添加Grep Phrase标志
  4. Intruder组件根据Grep Phrase标志区分是否存在漏洞

下载phantomjs

Download PhantomJS

下载xss.js

https://github.com/NetSPI/xssValidator/blob/master/xss-detector/xss.js

xss.js是phantomJS检测xss漏洞的具体实现,进入phantomjs-2.1.1-windows\bin目录打开cmd,执行 phantomjs.exe xss.js 命令设置监听

 

执行完后,控制台没有提示信息 表示已经执行成功了

 为了简单地说明使用方法,其他的参数我们都采取默认配置,只修改Grep Phrase和JavaScript functions两个参数: Grep Phrase修改为xss_bug,作为检测标志和列表头。 JavaScript functions中我们仅使用alert,其他的都暂时去掉。便于我们从控制台观察结果。我们最终的配置结果如截图所示:

 配置完插件之后,我们需要配置Intruder。 首先,指定Grep Phrase的值。

 ​​​​​​

 接着,Intruder的payload生成器需要设置为xssValidator的。

 

 

 开始测试

 开始后,可以看下我们之前phantomjs.exe xss.js 这个命令控制台是否有日志输出

intruder attack 界面结果列是否有请求进来

 耐心等待一会..... 等待完成

在Intruder的执行界面上,我们可以通过xss_bug来查看payload的检测情况,那些响应报文中存在漏洞标志的话,那么xss_bug列均会被打√显示出来

结果发现系统竟然没有xss的漏洞?xss_bug列没有√,是我的测试姿势不对吗?

先找下源码debug跟进下看下,在系统源码发现,看到了这样的代码有个filter对xss漏洞做了对应的包装请求过滤

 下面是过滤script标签等替换的代码

看到这里,就知道了为啥系统没有测试出来xss的漏洞,如果你的系统没有针对xss漏洞做处理,是否测试出来了xss的漏洞呢

猜你喜欢

转载自blog.csdn.net/run_boy_2022/article/details/131844890