burp-intrude-Attack-type的使用介绍

0x01 Attack type简介

      Burpintruder是一个强大的工具,用于自动对Web应用程序自定义的攻击。它可以用来自动执行所有类型的任务您的测试过程中可能出现的。它支持各种攻击类型 - 这些决定在何种负载分配给有效载荷仓的方式。攻击类型可以使用请求模板编辑器上方的下拉菜单进行选择。此外它能够定义多个位置,多种攻击载荷来进行灵活的攻击。

0x02 Attack type类型

1 Sniper(狙击手) 

            这将使用一套单一的payload set 。它的目标依次在每个有效载荷的位置,并把每个有效载荷送入依次那个位置。这不是针对一个给定的请求的位置不受影响 - 位置标记被移除,并在它们之间出现在模板中任何封闭文本保持不变。这种攻击类型为个别模糊测试的一些请求参数常见的漏洞非常有用。在攻击中生成的请求的总数是位置的数目和在有效载荷中设定的有效载荷的数量的乘积。

            简单来说,多个$Position$值以轮流的形式:使用一个payload set  去枚举第一个$ Position 1$值,再接着枚举$Position2$值。或者说使用一个payload 载荷逐个进行攻击多个位置,如:

Position

Payload

1

a

1

b

1

c

2

a

2

b

2

c

使用场景:单一$$值且单一payload。即使攻击的向量唯一。

2 Battering ram(撞击物) 

        使用一组payload set 。通过迭代的有效载荷方式,并将相同的Payload set 再一次填充到所有已定义的有效载荷仓。当其中一个攻击需要相同的输入将被插入在多个地方在请求中(例如,一个Cookie中的用户名和cookie参数)对这种攻击类型是非常有用的。在攻击中生成的请求的总数是有效载荷的有效载荷中设定的数目。

多个$Position$值同时以一个Payload set 值进行,如:$Position1$、$Position2$、$Position3$都是以a,b,c同时进行枚举,并且只能加载一份字典。或者说使用一个payload 载荷同时进行攻击多个位置,如

Payload

  a 

  b  

 c  

$Position1$

1

1

1

$Position2$

2

2

2

$Position3$

3

3

3

适用场景:账号密码都是同一个值

例如生成一组数字1-9,则就是1-1-1,2-2-2,3-3-3这种形式

3 Pitchfork(相交叉)

       这将使用多个Payload set 。对每个定义的$Position$值(最多20个),使用与其对应的有效载荷组。我们需要设置每个$Position$值的Payload set ,这样就把攻击载荷送到指定的$Position$值。例如:$Position1 $值 设置了payload set 1, payload type 设置字典1;$Position2 $值 设置了payload set 2, payload type 设置字典2;$Position3 $值 设置了payload set 3, payload type 设置字典3, 那么这样攻击的方式是1-1-1,2-2-2,3-3-3。这种攻击类型是有用的请求(例如,用户名中的一个参数,和对应于该用户名中的另一个参数已知的ID号) 。在攻击中生成的请求的总数是有效载荷中的最小有效载荷组的数目。

       以一对一方式枚举,多个$Position$值分别加载不同的字典文件同时进行枚举,如字典1(a,b,c)、字典2(1,2,3)。或者说,使用多个 payload set 一一对应 多个$Position$值,如

Payload1

Payload2

a

1

b

2

c

3

使用场景:一对一账号密码

4 Cluster bomb(集束炸弹)

       使用多个Payload set。对每个定义的Position(最多20个)设置不同的payload set。通过每个有效载荷的攻击迭代依次设置,使有效载荷组合的所有排列进行测试。

例如设置三个字典都是10个数,则总共有1000总匹配的模式

也就是说,如果有两个有效载荷的位置,则该攻击将放置第一个有效载荷从payload set 2到Positions 2 ,并通过在有效负载的所有 payload set 1中的positions 1 ;然后它将第二个有效载荷从载荷设置2到位置2 ,并通过有效载荷全部载入循环设置1到位置1 。其中一个攻击需要不同的和无关的或未知输入要在多个地方插入这种类型的攻击是非常有用的在请求中(例如猜测凭证,在一个参数的用户名,并且在另一个参数密码时) 。在攻击中生成的请求的总数是在所有定义的有效载荷的有效载荷集的数目的乘积 - 这可能是非常大的。

Cluster bomb

分别以一对多的关系,如:字典1(a,b,c)、字典2(1,2,3)。或者说是使用 一对多的映射关系。产生的请求数目为payload 1 X payload2 的请求数目。

Payload1

Payload2

a

1

a

2

a

3

b

1

b

2

b

3

c

1

c

2

c

3

0x03 Payloadtype

 从下面的列表中,我们可以选择负载类型。大量有效载荷类型可供选择,这些都是高度可配置的,可以让你快速自动生成在各种情况下的攻击载荷。考虑到实际情况中的使用比例,我们重点讲述几个常用的攻击载荷类型。

1 Simple list--简单字典

简单字典,可从Payload Option>Add from list中加载或直接Add添加,burp 里面有些集成的攻击载荷。当然我们也可以自己添加,使用【load】

2 Runtime file

      选择自己的字典文件

3 Custom iterator

         自定义迭代器。这种负载类型,您可以配置项目的多个列表,并使用生成的列表中项的所有排列有效载荷。它提供了一个强有力的方法根据给定的模板,以产生字符或其他项目的定制排列。例如,工资单的应用程序可以识别使用形式AB /12的人员数目的个人;你可能需要通过所有可能的人员编号遍历获取所有个人的详细信息。

Position 1添加1,11,111
Position 2 添加2,22,222
Position 3 添加3,33,333
在枚举时会生成如下格式字典:123,1123,11123,1223,11223,111223,12223依次类推。

4 Character substitution

      字符替换。此负载类型允许您配置一个字符串列表,并应用各种字符替换到每个项目。这可能是在密码猜测攻击非常有用,用来产生在字典中的单词常见的变化。 

用户界面允许您配置了一些字符替换。当执行攻击,有效载荷类型工程通过逐一配置的列表项。对于每个项目,它产生一个数的有效载荷,根据所定义的取代基包括取代的字符的所有排列。例如,默认替换规则(a>4,b>8,e>3,i>1)
可以选择以下的情况下修改规则: 
No change - 这个项目可以用不被修改。
To lower case- 在该项目的所有字母转换为小写。
To upper case -在该项目的所有字母转换为大写。 
To Propername - 在该项目的第一个字母转换为大写,以及随后的字母转换为小写。
To ProperName - 在该项目的第一个字母转换为大写,以及随后的字母都不会改变。
如admin,在枚举时会
先枚举一次admin,
然后再替换a>4(4dmin),
接着会替换i>1(adm1n),
最后才全部替换a>4 i>1(4dm1n),依次类推

6 Case modification

       此负载类型允许您配置一个字符串列表,并应用各种情况下修改每个项目。这可能对密码猜测攻击非常有用,用来产生在字典中的单词的情况下的变化。 
例如: PeterWiener
peter wiener
PETER WIENER
Peter wiener

7  Recursivegrep

   递归grep,要用这个必须在Intruder>options>Grep-extract下添加一个响应匹配,比如说我一个请求页需要前一个响应页中的内容,这里就可以这样使用了

8 Numbers数字

此有效载荷类型的给定的范围内,并在指定的格式产生数字有效载荷。

9 Dates

10  Brute forcer

11 Null payloads

      这种攻击载荷产生有效载荷,其值是一个空字符串。当某种攻击请求需要反复发送同样的请求,但这种请求相对于基本请求是没有任何修改,这种攻击载荷产生有效载荷,这可用于各种攻击,例如采集 cookies来进行测序分析;应用层的拒绝服务攻击,这些请求被重复发送,导致服务器上产生高工作负荷的任务,或保活会话令牌,以便这些令牌在其它的间歇试验中使用。使用此载荷类型,它甚至没有必要在请求模板中标志有效载荷位置。您可以配置Burp产生一定特定数目的空有效载荷,或无限期地持续下去。

     当然我们也可以使用数字、日期等其他方式产生大量的连接,导致服务器的负载过高。

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...