本文举例说明如何分析Burp Intruder攻击结果。
解释攻击结果的关键在于理解服务器响应。响应通常可以通过以下至少一种方式加以区分:
- 不同的HTTP状态码
- 不同的response长度
- 某种特定的表达
- error 或 timeout 的发生
- 接收或完成响应所需的时间
例如,对现有资源的请求可能会返回不同长度的“200 OK”响应,而对不存在资源的请求可能会返回“404 Not found”响应,或包含固定长度自定义错误页的“200 OK”响应。
在密码猜测攻击中,失败的登录尝试可能会生成包含关键字“login failed”的“200 OK”响应,而成功的登录可能会生成“302 Object moved”响应,或者生成包含单词“welcome”的不同长度的“200 OK”响应。相关响应特性的类型通常取决于所执行的攻击类型。
我们可以使用以下步骤来帮助分析攻击结果:
- 依次单击每个列标题,查看已排序的表以识别任何异常项。
- 取消隐藏其他列以分析响应时间和cookie。
- 使用筛选器删除包含或不包含特定表达式的项。
- 创建新的match grep项以标识包含在某些响应中找到的表达式的响应,并对新添加的列进行排序。
- 如果在某些响应中出现错误消息或其他有趣的数据,请创建新的extract grep项以提取此数据,并对新添加的列进行排序。
当发起Burp Intruder攻击时,将打开一个新的攻击窗口,并开始攻击。Results 选项卡中包含一个表。Results表包含已发出的每个请求的条目,以及各种关键细节,如使用的破解密码、HTTP状态码、响应长度等。可以选择表中的任一条目来查看完整的 Request 和 Response。
比较上图的Status和Length,判断示例的密码为123456。
我们还可以通过单击列标题对表进行排序,并使用 Filter 栏筛选表的内容。这些功能的工作方式与 Proxy 栏的 HTTP history 相同。
使用关联菜单执行其他操作并与测试工作流集成。下图将批量扫描的个别密码再次单独扫描。
本例中使用 BurpSuite 扫描 zabbix web应用,密码正确的话,页面会返回 302 跳转代码,而不是 200。
我们可以使用结果窗口中的“Save”菜单保存结果表或整个攻击。可以将结果表加载到其他工具或电子表格程序中,也可以通过主Burp UI上的 Intruder 菜单重新加载保存的攻击。
参考文档
[1] PortSwigger Ltd. Analyzing Burp Intruder attack results[EB/OL]. [2021年10月29日]. https://portswigger.net/burp/documentation/desktop/tools/intruder/analyzing-results.
[2] PortSwigger Ltd. Burp Intruder attack results[EB/OL]. [2021年10月29日]. https://portswigger.net/burp/documentation/desktop/tools/intruder/attack-results.