在平常的测试过程中,面对一个站点庞大的业务接口时,难免会忽略其中某些存在问题的接口,使用Burp与Xray联动可以将被动扫描和手工测试结合,达到一个很好的缺漏补差的效果,当然工具是为手工测试服务的,还是需要将侧重点放置到人工判断的角度,说白了与Xray联动就相当于找了个兜底的。这里使用 Burp 的原生功能与 xray 建立起一个多层代理,让流量从 Burp 转发到 xray 中。
(以下的测试环境都在本地windows10下进行)
首先 xray 建立起 webscan 的监听:
.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output result.html
image.png
接着在Burp的Options->Upstream Proxy Servers中添加上游代理:
image.png
浏览器代理为设置Burp的监听代理端口,非上游代理(略)
可以看到经过Burp的流量也转发给了Xray。
image.png image.png
下面是今天下午替甲方测试的结果:
某接口的post包内容如下:
image.png
正常的请求和响应:
image.png
测试其中一个json参数dataFrom报错:
image.png
并且知道该后台数据库为mysql,省去了一部分测试的工作量。
过程略,构造payload:(这里是报错注)
2020-11-13'and/**/extractvalue(1,concat(char(126),md5(1075985372)))and'
返回结果如下:
存在注入,其他的两个参数同上,过程略。
利用工具自动化获取输出结果(涉及敏感信息,重码):
image.png
image.png
然后这时候再回头看看我们的xray工作的怎么样了:
image.png存在一部分误报的情况,不过总体来说很满意了,里面也有刚才我们手工测试出来的那个注入的接口。
意外收获几个xss也是蛮香的:
image.png
总结
被动扫描和主动测试的结合(同时)的确可以给我们带来不错的结果,但是我们的重心主要还是需要放在对业务接口的熟悉和测试的深度上,而不是侧重于工具给我们反馈的结果,对工具扫描的结果也需要进一步人工的确认,还有一个待解决的问题是,目前没办法控制xray的fuzz强度,导致我们手工测试的过程会出现被防火墙检测到异常流量并且直接将我们的ip给ban了,其实是有点冤的哈哈,想到的解决方法是根据后台云服务器信息给xray挂上相应的代理,但这并不适用于所有的站点。
网友评论