在很多模糊测试场景中,研究人员可能会需要手动输出测试Payload,而BurpSuite Macro可以帮助我们将整个过程以自动化的方式实现。

1.png

在这篇文章中,我们将利用BurpSuite Macro来自动化模糊测试注入点的Payload输入,并尽最大可能发挥BurpSuite Macro的自动化功能。

在我的渗透测试生涯里,当我在对Web应用程序中的参数和输入框进行模糊测试时,我的确遇到过很多跟会话处理有关的问题和困难。在很多情况下,由于各种安全保护措施的限制,应用程序很可能会终止用户测试的会话进程。这样一来,进一步的扫描、探测和请求就不会给我们返回多少有价值的信息了,而你此时又要进行一次登录并重新与应用建立会话链接。

此前我一直都是通过手动的方式来完成这些操作,但是这的确太麻烦了。在寻求解决方案的过程中,我发现了BurpSuite的会话处理功能正好可以满足我的需求,我们也许可以利用BurpSuite Macro来完成应用登录、扫描和爬取等活动。

我们需要的测试工具如下:

1. BurpSuite免费版本(v1.7.21)

2.任何拥有会话处理功能的网站

第一步:下面这个网站就是我们的待测网站,该网站拥有登录功能:

2.png

第二步:现在暂时关闭BurpSuite的请求拦截功能,然后在登录框中输入凭证并完成登录:

3.png

第三步:登录完成后的界面如下:

4.png

第四步:为了测试会话处理功能,我们可以将这个页面请求发送给Burp的Repeater标签,然后移除cookie,并查看会话是否被终止:

5.png

第五步:我们可以看到,页面会话仍然正常。接下来,我们移除cookie并再进行一次测试:

6.png

第六步:我们可以看到,会话已经注销了,因此我们需要重新登录才能继续进行测试:

7.png

第七步:接下来,我们就要介绍Burp Macro了。

点击“Project Options”-> “Sessions”-> “Session Handling Rules”:

8.png

9.png

第九步:点击“add”按钮,创建一条新的规则:

10.png

第十步:添加一条符合自己需求的规则描述,然后在“Rule Actions”的下拉选项中选择“Check session is valid”:

11.png

第十一步:当你点击了“OK”按钮之后,会话处理编辑器将会被触发,其设置均为默认选项:

“Issue current request”。这个选项不用修改,然后往下拉:

12.png

13.png

第十二步: 勾选“If session is valid…”。接下来,点击“Add”按钮添加Macro,然后选择需要自动输入登录凭证并执行登录操作的页面,最后点击“OK”。

第十三步:点击了OK之后,Macro编辑器将会启动,并且你还可以对Macro进行相应配置(例如模拟宏、重新记录和重新分析等):

14.png

第十四步:在开始测试之前,你还需要配置需要识别的参数,以确保Burp可以帮我们捕捉到正确的测试参数:

15.png

第十五步:现在所有的设置已经完成,然后我们就可以开始进行测试了。

第十六步:接下来,设置URL范围,并运行Macro。

第十七步:我引入了所有的URL,然后开始测试我们的Macro:

16.png

第十八步:我们尝试在Repeater标签中访问主页(移除cookie):

17.png

第十九步:开始之后,cookie将会被自动添加到请求中,而此时页面将能够正常加载!

接下来,修改cookie值并检查会话信息:

18.png

19.png

总结

虽然操作步骤有点多,但都是一些很简单的配置。设置完成之后,Burp就可以帮我们根据规则和Macro设置来自动化完成所有任务了。

我们可以在测试过程中使用Payload 来对网站上的输入表单进行模糊测试,并尝试检查网站中是否存在XSS、SQLi和IDOR等漏洞。即使Web应用程序可能由于网络等问题而出现响应超时等情况,我们也可以在自动测试以及手动测试中保护会话免受恶意输入的影响,BurpSuite Macro将能够帮助我们记录所有的测试操作并使用凭证自动完成应用程序的登录,以继续扫描和爬取Web应用程序中的网页和资源。

* 参考来源:securelayer7, FB小编Alpha_h4ck编译