文章目录

  • 一、Burp Intruder 是什么?
  • 二、Burp Intruder 可以执行哪些任务?
  • 三、配置 Burp Intruder(Configuring Burp Intruder)
    • (一)、目标选项(Target tab)
    • (二)、位置选项(Positions tab)
      • 1、sinper---使用单个有效负荷集合。
      • 2、Battering ram---使用单个有效负荷集合。
      • 3、Pitchfork---使用多个有效负荷集合。
      • 4、Cluster bomb---这个使用了多个有效负荷集合。
    • (三)、有效负荷选项(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)
      • 1、Request Headers
      • 2、Request Engine
      • 2、Attack Results
      • 2、Grep-Match
      • 3、Grep-Extract
      • 4、Grep-Payloads
      • 5、Redirections(重定向)
        • (1)、Process cookies in redirects
    • 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 菜单上的选项标记的位置是要替换还是附加现有的参数值。在上面的请求编辑器里,指出了定义位 置的数量和文本模板的大小。
你可以使用选项上的按钮来控制位置上的标记:

  1. add §—在当前光标位置插入一个位置标记。
  2. clear §—删除整个模板或选中的部分模板里的位置标记。
  3. 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 中有大量 的可用的有效负荷源。其中的一些是高度可配置的,并且提供了许多自定义攻击。通过下拉 菜单为当前有效负荷选中源。每个有效负荷源在下面都一一介绍。

1、有效载荷集(Payload Sets)

(1)、Payload Set:

(2)、Payload Type:

Payload Options[simple list]
  • Paste 按钮式用来添加粘贴板上的列表项。
  • Load 按钮是用来导入文件的。
  • Remove 按钮删除选中的项。
  • Clear 按钮删除列表里的 所有项。
  • 通过文本框和 add 按钮手动地添加项。
  • 通过下拉菜单 add from list 来添加有用的有效负荷预设列表,包括常用的用户和密码, 以及用来探测像 SQL 注入的这样常规漏洞的字符串。
Payload Options[Runtime file]

这种有效负载类型配置了一个外面的文本文件,在运行时可以通过这个文件读取里面的有效负荷。当需要一个非常大的预设有效负荷列表时,避免将整个列表都放到内存里。从文件里的一行读取一个有效负荷,因此有效负荷不会包含换行符。

Payload Options[Custom iterator]

此有效负载类型使您可以配置多个项目列表,并使用列表中所有项目的排列生成有效负载。这个有效负荷源提供了一种强大的方式,通过给出的模板,来产生自定义的字符和其他项的排列。例如,使用表单里个人编号 AB/12,工资应用程序来识别单个人员;你需要通过迭代所有的人员编号来获取所有个人细节。
自定义的迭代器定义的用来产生排列的位置不能超过 8 个。每个位置使用一个列表来配 置,以及一个可选的分隔符,这个分隔符是被插入到那个位置和下一个之间。在上面的例子中,位置 1 是用 A-Z 项来配置,位置2用 0-9 项来配置,并且位置 1
会被设置分隔 符/。当执行攻击时,自定义的迭代器会迭代每个位置里的项,以覆盖到所有的排列可能。 因此,在这个例子中,有效负荷的总数量等于 26*10。

Preset scheme下拉菜单用来为自定义迭代器选择一个预设的配置。这些可以被许多标准的攻 击或者自定义攻击的修改使用。可用的 scheme 有:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lbQXA5sI-1612161128200)(en-resource://database/3226:1)]

  • 目录/文件扩展名—可以被用来枚举 web 内容;
  • 密码+数字—可以为密码猜测攻击提供一个扩展的字符列表。
Payload Options[Character substitution]

这个有效负荷源需要一个有效负荷项的预设列表,在自定义规则下,通过用不同字符把替换项里的单个字符,然后从这些项里产生许多有效负荷。这个有效载荷源在密码猜测攻击中很有用。例如,在字典单词上产生许多变化:
右面的复选框列表是用来配置提交规则。当攻击执行时,字符提交源会按顺序地处理每个预设项。对于每个项,它都会产生一些有效负荷,来包含通过提交规则提交的字符的所有排列。例如,aahed 就会产生下面的有效负荷:
aahed
4ahed
a4hed
44hed
aah3d
4ah3d
a4h3d
44h3d

Payload Options[Case Modification]

这个有效负荷源需要一个有效负荷项的预设列表,调整每一项里的字符,从这些项里产生出一个或多个有效负荷。这个有效负荷源在猜测密码攻击时,会很有用。例如,在字典单词上产生许多变化:

  • No change—这个项是让不要修改有效负荷集合。
  • To lower case—所有的字母被转换成小写的,并且结果添加到有效负荷集合。
  • To upper case—所有的字母被转换成大写的,并且结果添加到有效负荷集合。
  • To Propername—项里的第一个字母转换成大写,后面的字母转换成小写,结果添加到有效负荷集合。
  • To ProperName—项里的第一个字母转换成大写,后面的字母不变,结果添加到有效 负荷集合。

当攻击执行时,提交源会按顺序执行每一个预设项。对于每个项,它都会使用选中的提交规则产生一个有效负荷。如果这个规则产生了一个全新的有效负荷,它就会被加到有效负荷集合里(如,重复的有效负荷会被丢弃)。

Payload Options[Recursive grep]

这个有效负荷源带有 extract grep 功能(提取grep)。它允许通过对早期请求的响应来递归地产生有效负荷。extract grep 功能会通过匹配一个正则表达式来捕获一个服务器响应的一部分。和 recursive grep(递归grep)一起,从先前的服务器响应捕获的文本将用作后续请求的有效 负荷。

可以用在许多的枚举任务里。例如,可以用来通过 SQL 注入来枚举数据库的内容, 递归查询格式为:
union select name from sysobjects where name>‘a’
服务器的错误信息会泄露一个数据库对象的名字:
Syntax error converting the varchar value ‘accounts’ to a column of data type int.
使用 accounts 再查询确认下一个对象。使用 recursive grep 有效负荷可以简单地自动执行这个任务,进而快速地枚举出数据库里的所有对象。有效负荷里使用的第一个请求必须是手动指定的。当重复连续地发现 recursive grep 项时,就可以停止了,因为这就说明了枚举已经完成。注意由于有效载荷的本质属性,使用它的攻击就不能进行多线程请求。

Payload Options[Illegal Unicode]

这个有效负荷源需要一个有效负荷项的预设列表,在每一项里用指定字符的非法Unicode 编码替换字符本身,从这些项里产生出一个或者多个有效负荷。在尝试回避基于模式匹配的输入验证时,这个有效负荷会有用的,例如,在防御目录遍历攻击时…/和…序列 期望编码的匹配。

上端的 2 个文本框是来配置在每个预设项里提交的字符(*那里),以及非法编码的字符(/那里)。可以通过字母的 ASCII 编码或者 2 位十六进制编码来指定这个字母,这对于指定那些无法打印的字符是很有用的(如空字符)。
中间的控制项是用来产生非法编码的类型。在下面解释:

  • maximum overlong UTF-8 length (最大超长UTF-8长度)Unicode 编码方案允许最多使用 6 字节表示一个字符。使用一种类型就可以正确地表示出(0x00-0x7F) Basic ASCII 字符。然而,使用多字节的 Unicode 方案也能表示出它们(如, overlong 编码)。下拉菜单用来指定是否使用超长编码, 以及应该设定的最大使用型号。

  • illegal UTF-8 variants (非法的UTF-8变体) 如果选择的最大超长 UTF-8 长度为 2 字节以上,这个选项是可用的。当使用多字节编码一个字符时,第一个字节后面的字节应该用 10XXXXXX 这样的二进 制格式,来指出后续的字节。然而,第一个字节里最有意义的位会指出后面还有多少后续字 节。因此,Unicode 编码例程会安全地忽略掉后续字节的前 2 位。这就意味着每个后续字节 可能有 3 个非法变种,格式为 00XXXXXX,01XXXXXX 和 11XXXXXX。如果选中这个选项,则非法 Unicode 有效负荷源会为每个后续字节生成 3 个附加编码。

  • max permutations (最大排列) 如果选择的最大超长 UTF-8 长度为 3 字节以上,这个选项可用,并且选中 illegal UTF-8 variants。如果 max permutations 没被选中,则在生产非法变种时,非法 Unicode 有效负荷源会按顺序处理每个后续字节。为每个后续字节产生 3 个非法变种,并且其他的后续字节不会改变。如果 max permutations 被选中了,然而,非法 Unicode 有效负荷源会为后续字节生成所有的非法变种排序, 如,多个后续字节会同时被修改。在目标系统上避开高级模式匹配控制时,这个功能就会很有用。

  • illegal hex (非法的十六进制) 这个选择基本上一直可用。当使用超长编码和后续字节的非法变种(如果选中) 生成非法编码项列表时,通过修改由此产生的十六进制编码可能会迷惑到某种模式匹配控制。十六进制编码使用字符 A-F 代表十进制 10-15 的值。然而有些十六进制编码会把 G 解释为 16,H 为 17,等等。因此 0x1G 会被解释为 32。另外,如果非法的十六进制字符使用在一个 2 位数的十六进制编码的第一个位置,则由此产生的编码就会溢出单个字节的大小,并且有些十六进制编码只使用了结果数字的后 8 个有效位,因此 0x1G 会被解码为 257, 而那时会被解释为 1。每个合法的 2 位数的十六进制编码有 4-6 种相关的非法十六进制表示,如果使用的是上面的编码,则这些表示会被解释为同一种十六进制编码。如果 illegal hex 被选中,则非法 Unicode 有效负荷源会在非法编码项列表里,生成每个字节的所有可能的非法十六进制编码。
    max permutations 如果选中的最大超长 UTF-8 长度为 2 字节以上并且 illegal hex 也被选中,则这个选项可用。如果 max permutations 没被选中,在生成非法十六进制编码时, 非法 Unicode 有效负荷源会按顺序处理每个字节。对于每个字节,会生成 4-6 个非法十六 进制编码,其他的字节不变。如果 max permutations 被选中,然而,非法 Unicode 有效负荷源会为所有的字节,生成非法十六进制的所有排序,如,多个字节会被同时修改。在目标系统上回避高级模式匹配控制时,这个功能会非常有用。

  • add % prefix (添加%前缀)如果选中这个选项,在产生的有效负荷里的每个 2 位数十六进制编码前面, 都会插入一个%符号。

  • lower case hex (小写十六进制)这个选项决定了是否在十六进制编码里使用大小写字母。

  • max encodings (最大编码) 这个选项为会产生的非法编码数量放置了一个上界。如果大量使用超长 编码或者选中了最大排序,这个选项会很有用,因为那会生成大量的非法编码。

当攻击执行时,这个有效负荷源会迭代所有预设项列表,在非法编码集合里,每个预设 项替换每个项里的指定字符的所有实例。

Payload Options[Character blocks]

使用一个给出的输入字符串,这个有效负荷源产生指定大小的字符块。在对本机(非托管)上运行的软件进行探测缓冲区溢出和其他边界条件漏洞时,这个选项很有用。

string 段指定了输入字符串,从这里产生字符块。min 和 max 字段指定了产生 字符块的最小和最大长度。 step 字段指定了每个字符块的长度增量。

Payload Options[Numbers]

这个有效负荷产生的数字,是顺序的或者随机的,使用一个指定的格式:
from 和 to 字段指定了产生的最小和最大的数。
如果选中 sequential ,数字就 以 from 字段里的值作为起点,以 step 字段里的值做为增量。
如果选中 random, howmany 字段指定生成数字的数量。数字是以十进制或者十六进制的格式生成。
如果选 中十六进制,则 form , to 以及 step 字段必须是十六进制整数;否则是十进制的整数或分数。

Payload Options[Dates]

这个有效负荷在一个指定的范围内,在一个指定的间隔内,以一个指定的格式,产生日期。这个选项在数据挖掘(拖出在不同天里的订单条目)或者暴力攻击(猜测一个由生日组成的用户认证)中有用。
产生的日期是从 from 控制项里指定的日期开始,使用 step 控制项里指定的间隔来增加,直到或者包含了to 控制项里的指定日期。在 format 下拉菜单里可以选择一些预设的日期格式,或者自定义一个可以在文本字段里输入的日期格式。下面的例子说明了可以用来指定自定义的日期格式的编码:
d 7
dd 07
M 6
MM 06
yy 03
yyyy 2003

Payload Options[Brute forcer]

这个有效载荷源产生一个指定长度的有效载荷集合,这里面包含了指定字符集的所有排序可能。

Payload Options[Null payloads]

这个有效载荷源能产生 null 有效载荷 ,如,0 长度的字符串。它可以产生一个指定数量的空有效载荷,也可一直继续下去。当一次攻击需要重复同一请求,而不是做修改的基础模板,这个有效载荷就有用了。要完成这个工作,把一对位置标记一起放在请求模板的一个位置。这个可以在许多攻击中使用, 例如测序分析中获取 cookie,应用层的拒绝服务攻击,这里通过重复发送请求以在服务器上执行一个超载任务,保持一个用在其他地方进行断断续续测试的会话令牌。

十二、Payload Options[Char frobber]

这个有效载荷是在每个有效载荷位置现有基值或者知道的字符串上进行操作的,它通过一次一个字符,在基类字符串上循环,把那个字符 ASCII 码加 1。当测试参数值或部分值哪个更影响应用程序的响应,这个有效载荷源就有用了。特别是在测试复杂的会话令牌的哪一部分实际上是用来跟踪会话状态的。如果修改会话令牌里的 单个字符的值后,在会话里,请求仍然能被处理,则就有可能是这个字符不是用来跟踪的会话的。

十三、Payload Options[Bit flipper](字节翻转)

这个有效载荷是在每个有效载荷位置现有基值或者知道的字符串上进行操作的,它通过 一次一个字符,在基类字符串上循环,翻转顺序上的每(指定的)一位。可以配置位翻转要么为了操作字面基础值,要么把基础值当成 ASCII 十六进制字符串。
这个有效载荷源非常有用在对 char frobber 相似的情况下,但需要有细微控制权。例
如,如果一个会话令牌或者其他参数值包含一个有意义的数据,但这个数据使用了一种
CBC 模式密码加密了,就由可能通过修改前面密码块里的位来系统地改变部分加密数据。在这种 情况下,你可以在有效载荷源上使用位翻转来确定修改加密值里的单个位的影响,弄清楚应 用程序是否有漏洞。

十四、Payload Options[Username generator](用户名生成器)

这个有效载荷源需要人名作为输入,使用许多常规方案来产生用户名。如果目标是一个特殊人物的用户,这个有效载荷源就有用了,并且你不知道应用程序里使用的用户名或电子邮件地址方案。

2、有效载荷的处理(Payload processing)

对于每个有效载荷集合,除了使用有效载荷的源,在每个有效载荷上可能执行定义的许多附加处理过程。选中有效载荷源执行所有操作后,这个处理过程就开始了:
执行队列中的定义规则,并且通过切换开关来帮助排除配置中的问题。可用下面类型的规则:

  • 添加前缀
  • 添加后缀
  • 匹配/替换
  • 子字符串(从一个指定的偏移到一个指定的长度)
  • 掉转子字符串(从有效载荷的结尾索引的子字符串abc—>cba)
  • 修改状况(一些为 case substitution 的有效载荷源选项) 编码(URL,HTML,Base64,ASCII 十六进制以及多平台的组合字符串)
  • 解码(URL,HTML,Base64,ASCII 十六进制以及多平台的组合字符串)
  • 哈希表
  • 添加原来的有效负荷(如果需要在同一个有效载荷里包含原来的和哈希格式,这会有用)。
  • 最后,你可以配置最终的有效载荷里的字符,把它进行 URL 编码,这样在 HTTP 请求里更安全地传输。

建议使用最终的 URL 编码配置,而不是一个有效载荷过度规则。因为 payload grep 选项是用来在使用最终的 URL 编码之前为显示的有效载荷检查响应。

(四)、选项卡(Options tab)

这个选项里包含了许多配置控制着单个攻击行为的选项。

1、Request Headers

  • 如果选中"update Content-Length header" 框,Burp Intruder 会使用每个请求的 HTTP 主体长度的正确值,添加或更新这个请求里 HTTP 消息头的内容长度。这个功能对一些需要把可变长度的有效载荷插入到 HTTP 请求模板主体的攻击是很有必要的。这个 HTTP 规范和大多数 web 服务器一样,需要使用消息头内容长度来指定 HTTP 主体长度的正确值。如果没有指定正确值,目标服务器会返回一个错误,也可能返回一个未完成的请求,也可能无限期地等待接收请求里的进一步数据。

  • 如果选中"set Connection: close"框,则 Burp Intruder 会添加或更新 HTTP 消息头的连接来请求在每个请求后已关闭的连接。在多数情况下,这个选项会让攻击执行得更快。

2、Request Engine

  • Number of threads 设置决定了攻击使用几个线程来同步地加载请求。使用多线程能迅速地加快一次大型攻击,影响时间的主要因素就是处理请求和接收响应之间的延时。这可以用来测试应用程序漏洞的并发处理。这也可用来增加应用层拒绝服务的效果。

  • Number of retries on network failure 设置决定了如果产生网络错误(如,连接被拒绝或超时),Burp 会重发一个请求的次数,以及等待的时间间隔。

  • Pause before retry (milliseconds) 设置用来配置请求之间需要的延时。可能会需要一个固定的延时作为隐形的防护措施,来保留带宽和处理能力,以避免影响其他活动,这样就可以定期执行请求操作,保持一个断断续续地用在其他地方测试的会话令牌是否存活。一个可变的延时会对自动探测会话超时值很有用。

  • start 设置决定了攻击在加载时是否立即执行,或者在一个指定的延时后开始,或者一直等到选中"恢复"命令。如果配置的一个攻击需要在一些未知点上执行,或者为以后的使用保存,那么这个功能就有用了。

2、Attack Results

  • Store requests/Store responses 设置决定了攻击是否会保存单个请求和响应的内容。保存请求和响应需要在消耗临时目录里的磁盘空间,但能让在攻击时完整地查看它们,如果需要可以重复发请求, 也可以把它们发送到其他 Burp 工具上。

  • Make unmodified baseline request,这时除了配置攻击请求,Burp 还会除了模板请求,使用所有有效载荷位置来设置它们的基础值。这样请求在结果表格里会以#0 项显示出来。

  • Use denial-of-service mode(no results),则攻击会和平常一样地处理请求,但不会等待处理服务器返回的响应。当每个请求都处理完后,关闭 TCP 连接。这个功能可以通过重复地发送请求,使服务器执行超负荷任务,来对有漏洞的应用程序执行应用层的拒绝服务攻击。

  • Store full payloads,Burp 会完整地保存每一个结果的有效载荷值。这个选项会消耗一些内存,如果你想在运行时执行某种操作,这个就可能是需要的了,如修改有效载荷的 grep 设置,重新处理一个使用修改请求模板的请求。

2、Grep-Match

用来检查每个服务器响应里指定表达式,要么简单的模式匹配, 要么 Perl-like 正则表达式。对于每个指定的表达式,攻击会在结果表里包含一个列来指明是否找到一个匹配。基本功能有广泛的应用.(例如:密码猜测攻击,扫描"密码错误"或者 “登陆成功"的短语,SQL 注入漏洞测试,扫描包含"ODBC”"error"的消息,等等。)
如果使用正则表达式来匹配表达式,可能会包含换行符。

3、Grep-Extract

用来检查每个服务器响应里指定表达式,是否存在紧随匹配表达式的要提取的文本(知道指定的符号或者最大长度)。对于每个指定的表达式,攻击都在结果列表里包含一个从服务器响应里提取的文本的列。这个功能可以用来进行数据挖掘,通过数据挖掘能获得 web 页面里的有用信息,并且需要一个提取这些信息的自动化方法。例如, 如果获得了一个通向管理员用户的页面,通过它能够修改由 URL 查询字符串指定的 ID 的用户的账户信息,这时重复地通过用户 ID 来提取每一位用户的用户名和密码。

4、Grep-Payloads

用来检查每个服务器响应中的用在相关请求中的有效载荷字符串。这个功能在探测跨站点脚本和其他响应注入漏洞中会有用,跨站脚本漏洞产生在用户把输入动态插入到应用程序的响应里。

  • Search response for payload strings(有效负载字符串的搜索响应)
  • Case sensitive match (区分大小写的匹配)
  • Exclude HTTP Headers (排除HTTP标头)
  • Match against pre-encoded payloads,会搜索响应里的每一个应用编码之前的有效载荷字符串的原来格式。设置的这些常常都是很有必要的。(例如,如果你使用 XSS 测试有效载荷里的印刷字符,这通常需要在有效载荷处理选项里的 URL 编码,但如果应用程序有漏洞,就会在响应里显示出每个编码格式。)

5、Redirections(重定向)

重定向设置控制了 Burp Intruder 在执行攻击时,是否跟踪 HTTP 重定向(如,有 3xx 状态码和包含一个新 URL 的 Location header)。如果配置跟踪重定向,则 Intruder 在接收到 一个重定向时,会请求这个重定向 URL(如果需要,最多跟踪 10 个重定向),并在结果里记录下后续响应的细节。在结果表格的一个列里会显示是否为每个结果跟踪重定向。你可以配置是否只跟踪站点(如,相同协议,主机和端口)重定向,或者只跟踪范围内(在目标范围定义 的)重定向,或者跟踪所有的。
当一个应用程序对许多类型的输入都返回一个 3XX 的响应,这个跟踪重定向的选项就会有用,在请求重定向目标时,会返回应用程序处理请求的感兴趣的特征。例如,当使用模糊技术测试常规漏洞时,应用程序会频繁地返回一个到错误页面的重定向,这个页面可能包含了关于错误本质的有用信息,通过这个错误能诊断出像 SQL 注入这样的问题。
注意在跟踪重定向时,大多数情况下要使用单线程进行攻击,例如,如果应用程序存储了下一个指向重定向目标的请求返回的会话信息。同样要注意自动地跟踪重定向有时会给你的攻击带来一些麻烦。(例如,一些应用程序会对一些恶意请求响应到一个注销页面的重定向,这时跟踪重定向会导致你的会话终止,然而它不来不应该这样做。)

(1)、Process cookies in redirects

当跟踪重定向上时,任意设置为 3XX 响应 cookie 都会被提交。(例如,当你尝试暴力进行登录挑战时,通过重定向页面来指示登录结果,并且每次的登录尝试都会有创建一个新的会话,这个就需要这个选项了。)
当执行一次新的攻击时,会在指定的配置信息上执行许多验证审查。这包括验证有效载荷位置和有效载荷集定义是否正确,时序和 grep 设置是否可行,等等。有些故障会产生一些阻碍执行攻击的错误;产生的其他警告则会被忽略。

Results

一个对攻击结果进行有效解释的关键部分,定位在感兴趣或成功的服务器响应,以及产生这些响应的请求。通常情况下感兴趣的响应分为下面几种:
1.一个不同的 HTTP 状态码。
2.一个不同长度的响应。
3.某个表达式存在或不存在。
4.一个错误或超时的产生。
5.接收或完成响应的时间。( 例如,在一个探索内容的测试中,请求一个现存的资源,会返回一个长短不一的‘200 OK’的响应,然而请求一个不存在的资源时,会返回一个"404 not found"的响应,或者返回一个包含固定长度的自定义出错页面。在一次密码猜测攻击中,登陆失败会产生一个包含关键字"login failed"的"200 OK"的响应,然而成功的登陆会产生一个"302 Object moved"的响应,或者一个包含关键字"welcome"的不同长度的"200 OK"的响应。)

渗透测试工具:Burpsuite简略介绍4---Intruder相关推荐

  1. 渗透测试工具-burpsuite

    渗透测试工具-burpsuite 1.安装 1.1破解证书 1.2脚本启动 2.抓包 2.1WEB抓包 2.1.1burpsuite代理设置 2.1.2WEB代理设置 2.2手机抓包 2.2.1bur ...

  2. 【十年网络安全工程师整理】—100渗透测试工具使用方法介绍

    渗透测试是指渗透人员在不同的位置(比如从内网.从外网等位置)利用各种手段对 某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告, 并提交给网络所有者.网络所有者根据渗透人员提供 ...

  3. 渗透测试工具Burpsuite的使用(持续更新)

    写在前面 本篇文章将介绍渗透测试常用工具Burpsuite的功能和使用方法,重点在于使用步骤 抓包+暴力破解猜解账号和密码 首先抓取数据包 第二步,将数据包送入Intruder 由下图可以看出,现在有 ...

  4. 渗透测试工具Burpsuite

    学习文档 https://portswigger.net/burp/documentation/desktop/getting-started/download-and-install Burp Su ...

  5. 渗透测试工具篇——Nmap

    渗透测试工具篇--Nmap 目录 渗透测试工具篇--Nmap 介绍 安装 基本使用方法 主机发现 端口扫描 原理 用法 版本侦测 原理 用法 OS侦测 Nmap进阶用法 防火墙/IDS规避 规避原理 ...

  6. 自动化渗透测试工具介绍

    一. 渗透测试"三板斧" 1.信息搜集--全面了解系统 网络信息:DNS IP 端口 服务器信息:操作系统 版本 服务 中间件 :版本 WEB系统信息:使用技术 部署系统 数据库 ...

  7. 常用的渗透测试工具介绍

    渗透测试涵盖了广泛的内容,所以渗透测试工具也是多种多样的.渗透测试工具可根据不同的功能分为以下四类: (1)网络渗透测试工具. 如其名称所示,网络渗透测试工具是一种可以测试连接到网络的主机/系统的工具 ...

  8. 渗透测试工具Burp Suite详解

    Burp Suite 的安装 Burp Suite是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们高效地完成对Web应用程序的渗透测试和攻击. Burp Suite由Java语言编写,基于Ja ...

  9. java写渗透工具_常用渗透测试工具使用tips

    (7)sqlmap(python脚本学习下) 经典sql注入工具 (这种针对参数的工具,不知道是不是扫描方式有问题,还是怎么着,怎么才能抓几个包,或者把常用点的包抓出来) 抓几个sqlmap的包 sq ...

  10. 渗透测试实战-BurpSuite 使用入门

    前言 近期笔者在学习 web 渗透测试的相关内容,主要是为了公司之后的安全产品服务.渗透测试本身在学习过程中还是很有意思的,有一种学习到了之前想学但是没学的黑客技术的感觉,并且对笔者已掌握的许多知识做 ...

最新文章

  1. windows api中文文档_Web服务开发:Spring集成Swagger,3步自动生成API文档
  2. 保存Delphi中的环境设置中的library path
  3. 【数据结构】排序算法及优化整理
  4. halcon 旋转_HALCON高级篇:3D相机标定(3/3)
  5. .NET Core 使用RSA算法 加密/解密/签名/验证签名
  6. 四川大学java语言程序设计_四川大学2014年计算机(软件)学院Java语言设计期末考试B卷程序.doc...
  7. 推荐几个常用的生物通路数据库
  8. java list 对象 json字符串_Java中Json字符串直接转换为对象的方法(包括多层List集合)...
  9. (转)Spring Boot(二):Web 综合开发
  10. Flink的窗口聚合操作(Time\Count Window)
  11. JEP JAVA 初体验
  12. android contacts 源码分析,MTK Contacts代码分析
  13. 一种简单的输出负电源电路(部分电平转换芯片的工作原理)
  14. 男cd是啥意思_伪娘cd是什么意思
  15. Win7 安装PECL
  16. 我从外包公司离职了(一定要看 防坑指南)!
  17. 如何在面试中回答「你最大的缺点是什么」?
  18. 【微服务】服务调用----Ribbon
  19. matlab hamming code
  20. 心理学的166个现象---之五

热门文章

  1. SpaceX载人航天发射,宇航员手动操纵龙飞船进行测试!
  2. 【AdGuard Home】轻松实现全屋去广告与追踪,AdGuard Home助力更安全浏览体验
  3. win8安装java环境_Win8 下配置Java开发环境
  4. 【工业软件】工业软件对推进智能制造的价值
  5. linux查看用户所属的组
  6. .sp3文件命名规则
  7. 关于python中的位置参数、关键字参数、可变长位置参数以及可变长关键字参数的详解和他们之间在书写时的顺序的问题,超详细总结的知识点!!!
  8. python one hot编码_python对离散变量的one-hot编码方法
  9. linux 7退出单用户模式,CentOS 7 进入单用户模式图文详解+++++重置密码
  10. 收费最低的云存储_亿方云好不好?亿方云怎么收费?