文章目录
- 一、Burp Intruder 是什么?
- 二、Burp Intruder 可以执行哪些任务?
- 三、配置 Burp Intruder(Configuring Burp Intruder)
-
- (一)、目标选项(Target tab)
- (二)、位置选项(Positions tab)
- (三)、有效负荷选项(Payloads tab)
-
- 1、有效载荷集(Payload Sets)
-
- (1)、Payload Set:
- (2)、Payload Type:
-
- Payload Options[simple list]
- Payload Options[Runtime file]
- Payload Options[Custom iterator]
- Payload Options[Character substitution]
- Payload Options[Case Modification]
- Payload Options[Recursive grep]
- Payload Options[Illegal Unicode]
- Payload Options[Character blocks]
- Payload Options[Numbers]
- Payload Options[Dates]
- Payload Options[Brute forcer]
- Payload Options[Null payloads]
- 十二、Payload Options[Char frobber]
- 十三、Payload Options[Bit flipper](字节翻转)
- 十四、Payload Options[Username generator](用户名生成器)
- 2、有效载荷的处理(Payload processing)
- (四)、选项卡(Options tab)
- Results
一、Burp Intruder 是什么?
Burp Intruser 是一个自定义的对 web 应用程序进行自动化攻击的工具。
高效地使用Burp Intruder,需要明白目标应用程序是怎样工作的,以及一些 HTTP协议的知识。在使用 Burp Intruder 进行攻击之前,需要调查清楚目标应用程序的功能和结构,尤其是在浏览器和服务器之间传输的HTTP 消息。可以使用标准浏览器和Burp Proxy 拦截和查看应用程序产生的请求和响应。
二、Burp Intruder 可以执行哪些任务?
包括:缺陷测试、SQL注入、跨站点脚本、缓冲区溢出、路径遍历、暴力攻击认证系统、枚举、操纵参数、拖出隐藏的内容和功能、会话令牌测序和会话劫持、数据挖掘、并发攻击、应用层的拒绝服务式攻击。
Burp Intruder 有许多预设的攻击“有效负荷”(在探索发现常规漏洞中有用的字符串)列表。它包含了许多工具,这些工具动态地产生适合应用程序内的特定机制的攻击载体。外部的文件也可被加载并纳入到 Burp Intruder(如,枚举用户名的列表,新发现的漏洞的模糊字符串)。
核心动作就是通过这些 HTTP 请求重复地攻击。在调查阶段确认有基础请求派生的请求。Burp Intruder 以特殊方式操纵这些基础请求来确认或探测应用程序漏洞。它使用一个或多个有效载荷来替换基础请求中的一部分来实现这个过程。可以为每次攻击配置时间和执行方案。同时可以使用多线程来产生请求。限制请求可以防止入侵检测系统的探测。拒绝服务模型可以使用请求来轰炸服务器,这时会忽略所有接收到的响应。
当一次执行时,细节结果表格也就产生,显示出从服务器上接收到的每个请求的响应。结果里包含了所有的相关信息,可以使用它来查明一些感兴趣或成功的响应。除了常见的每次攻击的标准结果,在运行时可以对这些结果执行许多自定义的测试,这些结果同样被记录 下来。例如,可以为 Burp Intruder 精确配置指定一些 HTML 页面上的信息(如,用户信息页 面上的个人细节信息),并且在每个结果里记录这些信息。可以将结果导出做进一步操作,或者把结果当做下一步攻击的输入文件。
三、配置 Burp Intruder(Configuring Burp Intruder)
Burp Intruder 控制面板让你在他们的数字选项里同时能配置一个或多个攻击。可以使用 Intruder 菜单创建一个新的选项或者重命名现存的选项。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mWOFuSZJ-1612161128190)(en-resource://database/3214:1)]
在子选项(target, positions, payloads, options)里进行每次攻击配置。创建一个新攻击的最简单的方法是通过其他 Burp 工具(如代理历史记录或站点地图)定位相关的基础请求,然后使用上下文菜单里的"send to intruder"。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8QINInlv-1612161128191)(en-resource://database/3216:1)]
这将会用相关的细节来填充 target 和 positions 选项。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h0GZfXEX-1612161128194)(en-resource://database/3218:1)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nZidRZNj-1612161128195)(en-resource://database/3220:1)]
当你创建一个攻击选项时,可以通过 Intruder 菜单来控制怎样设置 payloads 和 options 选项。通过这种方式,你可以在第一次攻击选项(如模糊所有参数和搜索错误消息)里设置一个标准的攻击配置,然后把这些标准复制到发送给 Intruder 的每一次新攻击里。你可以使用 Intruder 菜单在任意选项之间复制攻击的配置,或者保存加载攻击配置。要开启一次攻击,需要设置攻击配置信息,然后在 Intruder 菜单上选择" start
attack"。
(一)、目标选项(Target tab)
这个选项是用来配置目标服务器的细节:
“host"区域是用来指定目标服务器的 IP 地址或者主机名。"port"区域是用来指定 HTTP/HTTPS服务的端口号"SSL"框是用来是否使用 SSL 连接。
(二)、位置选项(Positions tab)
这个选项是用来配置在攻击里产生的所有 HTTP 请求的模板:
主文本编辑器是用来设置基础请求的内容,以及在攻击时,标记出有效负荷插入到单个HTTP 请求的位置。这有一个有许多功能的上下文菜单。设置攻击模板的最简单的方法是先定位出在一个其他 Burp 工具里的相关请求,然后选中"send to intruder"选项。你可以从 Burp Suite 里的任何显示出一个 HTTP 请求或响应的地 方发送请求,也可以从 Burp Proxy 历史记录,站点地图里的视图树或者表格,以及从一个准备执行攻击的 Burp Intruder中。
使用一对§字符来标记出有效负荷的位置,在这两个符号之间包含了模板文本的内容。想把一个有效负荷放置到一个给出的请求的特殊位置上时,就用一对§符号将这个位置上的字符串围起来,在§两个符号之间的出现的文本都会被有效负荷替换。当有个特殊位置没有为一个给出的请求安排有效负荷时(这只适用"sniperr"攻击类型),那个位置的§字符会被删除,出现在它们之间的文本不会变化。
当使用 Burp Suite 发送一个其他地方的请求时,Burp Intruder 会对你最想放置有效负荷的位置做一个最好的猜测,并且它把这些放置在每个 URL 和主体参数的值里,以及每个 cookie 里。每个标记和它中间的文本都会被加亮以显得更清晰。你可以使用 Intruder 菜单上的选项标记的位置是要替换还是附加现有的参数值。在上面的请求编辑器里,指出了定义位 置的数量和文本模板的大小。
你可以使用选项上的按钮来控制位置上的标记:
- add §—在当前光标位置插入一个位置标记。
- clear §—删除整个模板或选中的部分模板里的位置标记。
- auto §—这会对放置标记的位置做一个猜测,放哪里会有用,然后就把标记放到相应位置。这是一个为攻击常规漏洞(SQL 注入)快速标记出合适位置的有用的功能,然后人工标记是为自定义攻击的。
4.refresh—如果需要,可以刷新编辑器里有颜色的代码。
5.clear—删除整个编辑器内容。
"attack type"下拉菜单是用来定义 Burp Intruder 行为的一个关键方面:单个请求把有效负荷放置特定位置的方式。
下面列出 4 个可能的攻击类型:
1、sinper—使用单个有效负荷集合。
目标是在每个位置上,并把每个有效负荷按顺序地插入到这些位置上。请求中不是目标的位置不受影响—位置标记会被删除并且它们之间的模板里的文本不会变化。这类攻击类型对单独使用数据域来测试常规漏洞(如, 跨站点脚本)非常有效。攻击产生的大量请求是位置数量和有效负荷数量的结果(假如两个位置的话负荷表在位置1放一遍再在位置2放一遍—请求数量是位置数量和有效载荷的数量的积)。
2、Battering ram—使用单个有效负荷集合。
通过有效负荷迭代,并一次在所有定义的位置插入有效负荷。当一次攻击需要在 HTTP 请求(如,Cookie 消息头和消息体里的用户名)中的多个位置上插入相同的有效负荷时,这个攻击类型非常有用。攻击产生的所有请求数量就是有效载荷的数量。
3、Pitchfork—使用多个有效负荷集合。
在每个定义的位置有不同的有效负荷集合 (最多 8 个)。攻击同时通过所有的有效负荷集合进行迭代,并在每一个位置上插入一个有效载荷。例如:
第一个请求会把第一个有效负荷集合里第一个有效负荷插入到第一个位置,第二个有效载荷集合里的第一个有效负荷插入到第二个位置。
第二个请求会把第一个集合里的第二个有效负荷插入到第一个位置,把第二个有效负荷里的第二个有效负荷插入到第二个位置,依次类推。
当攻击需要将不同的但相关的输入插入到 HTTP请求(如,一个数据域里的用户名,以及在其他数据域里的一个和用户名相关的ID号)的多个位置里时,这个攻击类型非常有用。攻击产生的所有的请求数量是最小有效负荷集合里的有效负荷数。
4、Cluster bomb—这个使用了多个有效负荷集合。
每个定义的位置(最多 8 个)都有一个不同的有效负荷集合。攻击会按照每个有效负荷集合的顺序进行迭代,于是所有的有效负荷排列组合都会被测试。
例如,如果有 2 个有效负荷位置,攻击把第一个有效负荷集合里的第一个有效负荷放置在第一个位置,在位置 2 里迭代第二个有效负荷里的所有有效负荷;然后把第一个集合里第二个有效负荷放在第一个位置,然后在位置 2 上迭代集合 2 里的所有有效负荷。当攻击需要在 HTTP 请求(如,一个参数里的用户名和另一个参数里的密码)里 插入不同的并且不相关的输入时,这个攻击类型会很有效。攻击产生的请求数量是在所有定义集合里的有效负荷数量的乘积。
(三)、有效负荷选项(Payloads tab)
这个选项是用来配置一个或多个有效负荷的集合。如果定义了Pitchfork 和 Cluster bomb 攻击类型,然后必须为每定义的有效负荷位置(最多 8 个)配置一个单独的有效负荷。 使用 Payload set 下拉菜单选择要配置的有效负荷。
对于每个有效负荷集合,都会定义一个有效负荷源(如,preset list, character blocks, brute forcer)来使用,并且在每个有效负荷上执行多种附加的处理。在 Burp Intruder 中有大量 的可用的有效负荷源。其中的一些是高度可配置的,并且提供了许多自定义攻击。通过下拉 菜单为当前有效负荷选中源。每个有效负荷源在下面都一一介绍。