Burp Intruder


Burp Intruder作为Burp Suite中一款功能极其强大的自动化测试工具,通常被系统安全渗透测

试人员被使用在各种任务测试的场景中


Intruder操作步骤


主要遵循以下步骤:

1、确认Burp Suite安装正确并正常启动,且完成了浏览器的代理设置。

2、进入Burp Proxy选项卡,关闭代理拦截功能。

3、进行历史日志(History)子选项卡,查找可能存在问题的请求日志,并通过右击菜单,发送到Intruder。



BurpSuite使用指南-使用Burp Intruder_安全入门



进行Intruder 选项卡,打开Target和Positions子选项卡。这时,你会看到上一步发送过来的请求消息。 


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_02


默认有两个选项卡


默认情况下,Burp Intruder会对请求参数和Cookie参数设置成Payload position,前缀添加 $符合,如上图红色标注位置所示。当发送请求时,会将$标识的参数替换为Payload。


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_03


在Position界面的右边,有【Add $】、【Clear $】、【Auto $】、【Refersh $】四个按钮,是用来控制请求消息中的参数在发送过程中是否被Payload替换



BurpSuite使用指南-使用Burp Intruder_安全入门_04


选择攻击类型


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_05


开始测试


BurpSuite使用指南-使用Burp Intruder_安全入门_06


看来得切换成专业版本


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_07


Burp会自动打开一个新的界面,包含攻击执行的情况、Http状态码、长度等结果信息。


BurpSuite使用指南-使用Burp Intruder_安全入门_08


我们可以选择其中的某一次通信信息,查看请求消息和应答消息的详细


Payload类型与处理


BurpSuite使用指南-使用Burp Intruder_安全入门_09



在Burp Intruder的Payload选项卡中,有Payload集合的设置选项,包含了经常使用的Payload类型,共18种。



BurpSuite使用指南-使用Burp Intruder_安全入门_10


简单列表(Simple list)

——最简单的Payload类型,通过配置一个字符串列表作为Payload,也可以手工添加字符串列表或从文件加载字符串列表。


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_11


预定义了一组简单Payload列表,包括XSS脚本、CGI脚本、SQL注入脚本、数字、大写字母、小写字母、用户名、密码、表单域的字段名、IIS文件名和目录名等等,极大地方便了渗透测试人员的使用


运行时文件(Runtime file) ——指定文件

当我们点击【select file】选择文件时,将弹出图中所示的对话框,选择指定的Payload文件。运行时,Burp Intruder将读取文件的每一行作为一个Payload。


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_12


自定义迭代器(Custom iterator)

共有8个占位,每一个占位可以指定简单列表的Payload类型,然后根据占位的多少,与每一个简单列表的Payload进行笛卡尔积,生成最终的Payload列表



BurpSuite使用指南-使用Burp Intruder_安全入门_13



例如,某个参数的值格式是username@@password


BurpSuite使用指南-使用Burp Intruder_安全入门_14


将会生成大量的这种格式参数


字符串替换(Character substitution)


是对预定义的字符串进行替换后生成新的Payload。


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_15


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_16



大小写替换(Case modification)


对预定义的字符串,按照大小写规则,进行替换


BurpSuite使用指南-使用Burp Intruder_安全入门_17


递归grep (Recursive grep)


此Payload类型主要使用于从服务器端提取有效数据的场景,需要先从服务器的响应中提取数据作为Payload,然后替换Payload的位置,进行攻击。它的数据来源了原始的响应消息,基于原始响应,在Payload的可选项设置(Options)中配置Grep规则,然后根据grep去提取数据才能发生攻击。


BurpSuite使用指南-使用Burp Intruder_安全入门_18


不合法的Unicode编码(Illegal Unicode)


在payloads里用指定的不合法Unicode 编码替换字符本身,从这些Payload列表里产生出一个或者多个有效负荷。在尝试回避基于

模式匹配的输入验证时,这个有效负荷会有用的,例如,在防御目录遍历攻击时../和..序列的期望编码的匹配。



BurpSuite使用指南-使用Burp Intruder_安全入门_19


字符块(Character blocks)—


这种类型的Payload是指使用一个给出的输入字符串,根据指定的设置产生指定大小的字符块,表现形式为生成指定长度的字符串。它通常使用了边界测试或缓冲区溢出。


BurpSuite使用指南-使用Burp Intruder_安全入门_20


数字类型(Number)

这种类型的Payload是指根据配置,生成一系列的数字作为 Payload。


BurpSuite使用指南-使用Burp Intruder_安全入门_21


日期类型(Dates)—


这种类型的Payload是指根据配置,生成一系列的日期


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_22


暴力字典(Brute forcer)

此类Payload生成包含一个指定的字符集的所有排列特定长度的有效载荷,通常用于枚举字典的生成


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_23


空类型(Null payloads)

这种负载类型产生的Payload,其值是一个空字符串。在攻击时,需要同样的请求反复被执行,在没有任何修改原始请求的场景下此Payload是非常有用的。它可用于各种攻击,例如cookie的序列分析、应用层Dos、或保活会话令牌是在其它的间歇试验中使用。 


BurpSuite使用指南-使用Burp Intruder_安全入门_24


字符frobber(Character frobber)

这种类型的Payload的生成规律是:依次修改指定 字符串在每个字符位置的值,每次都是在原字符上递增一个该字符的ASCII码


BurpSuite使用指南-使用Burp Intruder_安全入门_25


Bit翻转(Bit flipper)

这种类型的Payload的生成规律是:对预设的Payload原始值,按照比特位,依次进行修改。


BurpSuite使用指南-使用Burp Intruder_安全入门_26


用户名生成器(Username generator)

这种类型的Payload主要用于用户名和email帐号的自动生成,其设置界面如下图: 


BurpSuite使用指南-使用Burp Intruder_安全入门_27


ECB 加密块洗牌(ECB block shuffler)

这种类型的Payload是基于ECB加密模式的 Payload生成器


BurpSuite使用指南-使用Burp Intruder_安全入门_28


Burp Payload生成插件(Extension-generated)

这种类型的Payload是基于Burp插件来生成Payload值,因此使用前必须安装配置Burp插件,在插件里注册一个Intruder payload生成器,供此处调用。


BurpSuite使用指南-使用Burp Intruder_安全入门_29


Payload复制(Copy other payload)

这种类型的Payload是将其他位置的参数复制到 Payload位置上,作为新的Payload值,通常适用于多个参数的请求消息中,它的使用场 景可能是:

1、两个不同的参数需要使用相同的值,比如说,用户注册时,密码设置会输入两遍,其值也完全一样,可以使用此Payload类型。

2、在一次请求中,一个参数的值是基于另一个参数的值在前端通过脚本来生成的值,可以使用此Payload类型。


BurpSuite使用指南-使用Burp Intruder_安全入门_30


Payload位置和攻击类型


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_31


Payload位置的设置是基于Http请求的原始消息作为母板,使用一对 §字符来标记出Payload的位置,在这两个号直接包含了母板文本内容。 当我们已经把一个Payload在请求消息的特殊位置上时标明后,发起攻击时,Burp Intruder 就把一个Payload值放置到给出的特殊位置上,替换 §符号标示的整个位置。

如上图中的参数id后面的 §符号之间的标明的是Payload位置1,name后面的 §符号之间标明的是Payload位置2,这个值对应于Payload设置中的Payload set的值。


有四种类型


狙击手模式(Sniper)


使用一组Payload集合,依次替换Payload位置上(一次攻击只能使用一个Payload位置)被§标志的文本(而没有被§标志的文本将不受影响),对服务器端进行请求,通常用于测试请求参数是否存在漏洞。


攻城锤模式(Battering ram)—


使用单一的Payload集合,依次替换Payload位置上被§标志的文本(而没有被§标志的文本将不受影响),对服务器端进行请求,与狙击手模式的区别在于,如果有多个参数且都为Payload位置标志时,使用的Payload值是相同的,而狙击手模式只能使用一个Payload位置标志。


草叉模式(Pitchfork )—


可以使用多组Payload集合,在每一个不同的Payload标志位置上(最多20个),遍历所有的Payload。举例来说,如果有两个Payload标志位置,第一个Payload值为A和B,第二个Payload值为C和D,则发起攻击时,将共发起两次攻击,第一次使用的Payload分别为A和C,第二次使用的Payload分别为B和D。 


集束炸弹模式(Cluster bomb)


可以使用多组Payload集合,在每一个不同的Payload标志位置上(最多20个),依次遍历所有的Payload。它与草叉模式的主要区别在于,执 行的Payload数据Payload组的乘积,如果有两个Payload标志位置,第一个Payload值为A和B,第二个Payload值为C和D,则发起攻击时,将共发起四次攻击


可选项设置(Options)


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_32


可以自己设置资源池


BurpSuite使用指南-使用Burp Intruder_intruder使用指南_33


还有其他一些小设置。


BurpSuite使用指南-使用Burp Intruder_安全入门_34


grep设置。


BurpSuite使用指南-使用Burp Intruder_安全入门_35