本文讲的就是利用 Macros,帮助你自动化手动输入有效载荷模糊的工作。
渗透测试中,在 Web 应用中执行参数和页面字段的模糊处理时,你会遇到一些与会话处理有关的问题。
在多种情况下,用于终止会话的应用仅用于测试,这或许是由于一些安全对策引发的(例如:获得不安全的输入,用于注销的会话),又或许是在其他情况下,burp spider(一个映射 web 应用的工具)或 crawler 被用于模糊注销页面参数以终止会话。
在这些情况下,进一步的扫描,探测和请求都会变得无效,这样,你就不得不执行重新登录并建立应用的会话。
以前,我都是手动进行处理的,但这实在是太麻烦了。于是,我注意到了 Burp 的会话处理功能。
在经过初步地探索后,我发现 Burp 通过一些基于 Macros 的规则就可以自动化处理。
简单来说,如果是模糊参数导致的会话终止,Burp 就可以使用凭据自动登录 app,并继续扫描和探测。
前期配置
1.BurpSuite 1.7.21(免费版)
2. 任何具有会话处理的网站(本文用的是 http://demo.testfire.net)
步骤 1:
如以下显示的网站,要具有登录功能:
此时,我可以简单的在 burp suite 中实施拦截,并利用凭据来执行登录。
进入网站的登录页面:
现在为了测试会话处理,我可以将这个页面请求发送到 burp 的中继器选项卡(repeater tab),如果由于会话中断而导致会话被终止,那么就删除 cookie。
因为我有一个正确的会话,所以可以看到页面会话正在运行,最后我尝试删除 cookie 并再次测试
可以看到,会话被注销,我需要再次登录以继续测试。
现在要做的就是恢复 Burp Macros。使用 NavigateTo 方法:项目选项 ->会话 ->会话处理规则。
现在,我可以看到有一个默认规则,该规则使用来自 Burp 的 cookie jar 的 cookie。
单击添加按钮创建新规则:
选择适合你和规则操作的规则描述,选择 " 检查会话有效 ":
一旦单击确定,会话处理编辑器就将启动,显示默认值并发出当前请求。向下滚动到 " 如果会话无效,请执行以下操作 " 界面:
勾选 "if session is invalid, perform the following action" 可选框并单击添加宏,此时,你将获得具有所有代理历史记录的宏记录器。单击并选择具有登录凭据的执行登录页面。
步骤 13:
一旦你点击确定,宏编辑器将启动,你可以使用自定义名称命名,选择相关选项来模拟宏,重新记录,重新分析。
在测试之前,配置参数以确定 burp 是否已经正确捕获了测试参数。
现在设置全部完成,我可以执行一个测试宏。
步骤 16:
现在单击 final scope ,并将 URL 范围设置为所有 urls/suite scope/custom scope,以指导宏在哪里运行。
步骤 17:
我把所有 URL 都包括在这里,再测试一下我的宏:
在中继器选项卡中,我正在尝试访问没有 cookies 的主页面。
一旦我点击,Cookie 将自动添加到请求中,页面将加载!
篡改 Cookie 值以检查会话:
我可以使用我的测试有效载荷来简单地模糊输入字段,以检查 XSS,SQLi,IDOR 等漏洞。即使应用由于中间系统中断而超时,也可以在自动扫描或手动测试时保护会话免受垃圾输入。这样,macros 将帮助你执行记录操作并在 app 里重新登录!