Burp Suite的Intruder介绍

简介

Burp Suite 是一个渗透测试的工具,基中的Intruder模块有很强大遍历循环尝试的功能。

在实际使用每个界面都会有问号,并链接到相关的说明文档。
本文章参考英文文档,做了简单的翻译与自己的使用总结。

详情

它是一个对请求进行模板化填充并尝试的工具

Target

目标地址

Positions

设置请求的相关位置。用$符号标记出来的为payload的填充位置。

Attck Type

Sniper (狙击?)

每次请求,只替换一个占位符,其它占位符不做替换,保持原内容。
总请求数据= 位置数 * 测试payload的个数。

eg:
模板:[a]x[b],有payload列表为1,2。
则生成4次,[1]x[b],[2]x[b],[a]x[1],[b]x[2]

Battering ram (攻城槌?)

每次请求,用payload填充所有占位符。
总请求数据= 测试payload的个数。

eg:
模板:[a]x[b],有payload列表为1,2。
则生成2次,[1]x[1],[2]x[2]

Pitchfork(干草叉?)

对每个一个占位符可以单独设置payload的列表与规则。
每次占位符取对应payload列表中的值。
总请求数据= 多个payload集合中个数最小的

eg:
模板:[a]x[b],a的payload列表为1,2,b的payload列表为3,4。
则生成2次,[1]x[3],[2]x[4]

Cluster bomb (集束炸弹?)

对每个一个占位符可以单独设置payload的列表与规则。
对所有payload列表进行排列组合进行请求
总请求数据= N1 * N2 * … * Nx
Nx 为第x个占位符的payload个数。

eg:
模板:[a]x[b],a的payload列表为1,2,b的payload列表为3,4。
则生成4次,[1]x[3],[1]x[4],[2]x[3],[2]x[4]

Payloads

Payload Sets

设置payload 的集合与类型

payload type

这里可以定制不同生成方式。

主要介绍两种,simple list 与 Number

simple可以导入指定列表

number可以通过数字的增长,来进行遍历

Payload Processing

载荷的处理。
有一个列表,可以设置多个处理器。
每个处理器可以指定一种处理方式。
处理完后的数据填到最后的模板中

处理方式

  • Add prefix - 加前缀
  • Add suffix - 加后缀
  • Match / replace - 匹配和替换
  • Substring - 取子串
  • Reverse substring - 反向,可以指定反向的区间
  • Modify case - 修改大小写
  • Encode - 编码 (URL,HTML,BASE64)
  • Decode - 解码
  • Hash - 散列加工(有MD5/MD2,SHA/SHA256/SHA512/SHA224/SHA384)
  • Add raw payload - 这个没搞清楚
  • Skip if matches regex - 指定定条件跳过
  • Invoke Burp extension - 按扩展插件

示列

登录密码按md5(md5(pwd))来处理,就需要添加两个处理器。
比如越权显示ID,要进行base64处理进行尝试

Options

可以配置运行时的参数信息

Request Engine

  • 配置线程数
  • 重试次数
  • 重试频率
  • 请求之间的节流 - 可以在请求之前等待指定时间
  • 开始时间

Attack Result

配置显示哪些结果

Grep-Match

这些设置可用于标记响应中包含指定表达式的结果项。对于列表中配置的每个项目,Burp将添加一个新的结果列,其中包含一个复选框,指示是否在每个响应中都找到了该项目。然后,您可以对该列进行排序(通过单击列标题)以将匹配的结果分组在一起。

Grep-Extract

这些设置可用于从响应中提取有用的信息到攻击结果表中。对于列表中配置的每个项目,Burp将添加一个新的结果列,其中包含为该项目提取的文本。然后,您可以在此列上排序(通过单击列标题)以对提取的数据进行排序。

此选项对于从应用程序中挖掘数据很有用,并且可以支持广泛的攻击。
例如,如果循环浏览一系列文档ID,则可以提取每个文档的页面标题以查找有趣的项目。如果找到了一个返回其他应用程序用户详细信息的函数,则可以遍历用户ID并检索有关用户的相关字段,以查找管理帐户甚至密码。

Grep-Payloads

这些设置可用于标记响应请求中是否有payload的结果项

Redirections (处理重定向)

这些设置控制Burp在执行攻击时如何处理重定向。通常必须遵循重定向才能实现攻击目标。例如,在密码猜测攻击中,每次尝试的结果可能仅通过遵循重定向来显示。当进行模糊测试时,相关的反馈可能仅出现在初始重定向响应之后返回的错误消息中。

典型的使用场景(Typical uses)

Burp Intruder是一种非常灵活的工具,可以在测试Web应用程序时帮助自动执行各种任务。入侵者最常见的用例分为以下几类:

  • 枚举标识符
  • 收集有用的数据
  • 模糊检测漏洞

枚举标识符

Web应用程序经常使用标识符来引用数据和资源项。例如,用户名,文档ID和帐号。通常,您将需要循环浏览大量潜在标识符,以枚举哪些有效或值得进一步研究。

  • 查找一个在参数中包含标识符的应用程序请求,其中的响应指示标识符是否有效。
  • 使用正确的格式或方案,使用适当的有效负载类型来生成潜在的标识符以进行测试。
  • 确定响应的功能,从中可以可靠地推断出有效的标识符,并相应地配置Burp。
  • 如果订单处理应用程序功能允许您通过提交有效的订单ID来查看任何订单的详细信息,则可以使用自定义迭代器有效负载类型以正确的格式生成潜在的订单ID,并拖网其他用户的订单

收集有用的数据

在许多情况下,您不仅需要简单地识别有效的标识符,还需要提取有关每个项目的一些有趣数据,以帮助您将精力集中在最关键的项目上,或者将其用于其他攻击。

  • 查找一个在参数中包含标识符的请求,并且响应中包含有关所请求项目的有趣数据。
  • 使用正确的格式或方案,使用适当的有效负载类型来生成潜在的标识符以进行测试。
  • 配置Grep-Extract项以从每个响应中检索相关数据,并将其列在攻击结果中。

如果应用程序具有“忘记密码”功能,该功能将用户名作为参数并显示该用户设置的密码提示,则可以循环浏览简单的常用用户名列表,并提取每个有效用户的密码提示。

如果应用程序有一个“用户配置文件”页面,其中包含有关每个用户的信息,包括他们在应用程序中的角色,则可以循环浏览已提取的用户名列表,并检索每个用户的角色,从而快速识别管理帐户以进一步有针对性的攻击。

模糊检测漏洞

通过在请求参数中提交各种测试字符串,并分析应用程序对错误消息和其他异常的响应,可以检测到许多基于输入的漏洞,例如SQL注入,跨站点脚本和文件路径遍历。考虑到当今应用程序的大小和复杂性,手动执行此测试是一个耗时且繁琐的过程。

您可以通过执行以下步骤来使用Burp Intruder自动执行Web应用程序模糊测试:

  • 首先,将有效负载位置配置为所有请求参数的值。然后使用简单列表有效负载类型。
  • 使用各种常见错误消息字符串配置Grep-Match。Grep-Match用户界面中的默认选项包括用于此目的的有用字符串列表。
  • 发起攻击后,查看攻击结果以识别有趣的错误和其他异常。您应该在每个匹配grep列以及其他相关列(例如响应长度,HTTP状态代码,响应计时器等)上对结果表进行排序。

总结

边阅读使用文档,边操作,边记录过程。
介绍了常见的使用方法,界面的常用配置,相关的使用场景。

参考


Burp Suite的Intruder介绍
https://blog.fengcl.com/2021/02/21/burp-suite-intruder-introduction/
作者
frank
发布于
2021年2月21日
许可协议