
简介
Burp Intruder是一个自动化测试的工具,常用来进行*力暴**破解。
工作原理
Intruder在原始请求数据的基础上,通过修改各种请求参数,以获取不同的请求应答。每一次请求中,Intruder通常会携带一个或多个有效攻击载荷(Payload),在不同的位置进行攻击重放,通过应答数据的比对分析来获得需要的特征数据。Burp Intruder通常被使用在以下场景:
1. 标识符枚举 用户名,文件ID和账户号码。
2. 通过简单标识符提取有用的数据。比如说,你想通过用户的个人空间id,获取所有用户在个人空间标准的昵称和年龄。
3. 模糊测试,很多输入型的漏洞,如SQL注入,跨站点脚本和文件路径遍历可以通过请求参数提交各种测试字符串,并分析错误消息和其他异常情况,来对应用程序进行检测。
模块说明
Burp Intruder主要有四个模块组成:
1:Target 用于配置目标服务器进行攻击的详细信息。
2:Positions 设置Payloads的插入点以及攻击类型(攻击模式)。
3:Payloads 配置payload字典
4:Options 此选项卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections
Target 目标选项(Target tab)
这个选项是用来配置目标服务器的细节:IP、端口、HTTPS

Positions 位置选项(Positions tab)
这个选项是用来配置在攻击里产生的所有 HTTP 请求的模板:

你可以使用选项上的按钮来控制位置上的标记:
1. add § — 在当前光标位置插入一个位置标记,如果选中一块信息就是在一块信息两端加上§。
2. clear § — Clear 清除所有payload位置标志或者清除选中的payload位置标志。
3. auto § — 自动为常规漏洞(SQL 注入)攻击快速标记出合适位置。
4.refresh — 刷新编辑器里有颜色的代码。
5.clear — 删除整个编辑器内容。

Sniper(不适用密码*力暴**破解) 使用一组payload集合,依次替换payload位置上被§标志的文本,对服务器端进行请求,通常用于测试请求参数是否存在漏洞。
无任你有几个注入点(插入数据的地方)我先在第一个位置插入我的字典文件中的第一项,第二个请求在第一次插入点里面插入我第一个列表文件里面的第二个请求项。(只需要一个字典文件,每次只插入一个注入点)
选中用户名和密码的位置

下面每一个标记的地方就是一个插入点(这是brupsuite自动定义的插入点,我们每次都应该先清除掉)。

选中要添加注入点的地方点击add进行添加,add使用一对§字符来标记出有效负荷的位置,这两个地方也就是攻击测试的地方。


在下面的地方选择一个字典文件


字典中有5个,分别向两个注入点插入数据,所以就是10次

在请求的过程中URL会把请求的数据进行编码,因为现在是明文的提交用户名和密码,所以现在就把这个给取消掉,如果你勾选上服务器就会认为是编码之后的数据进行请求,影响密码破解效果。

点击start attack进行攻击


Battering ram 它使用单一的Payload集合,使用相同的Payload值同时依次替换Payload位置上被§标志的文本,对服务器端进行请求。
把字典的一项内容同时插入所有的注入点(也就是说用户名和密码同时使用相同的参数来插入)

Payloads
这个选项是用来配置一个或多个有效负荷的集合。如果定义了"cluster bomb"和"pitchfork"攻击类型,然后必须为每定义的有效负荷位置(最多8个)配置一个单独的有效负荷。使用"payload set"下拉菜单选择要配置的有效负荷。
选项1:Payload Sets Payload数量类型设置
选项2:Payload Opetions[Simple list] 该选项会根据选项1中Payload type的设置而改变


Pitchfork
需要两个字典,两个注入点第一次分别使用第一个字典的第一数据和第二个字典的第一个数据,第二次分别使用第一个字典的第二个数据和第二个字典的第二个数据。



Cluster bomb(最常用的破解方式)如果有两个Payload标志位置,第一个
Payload值为A和B,第二个Payload值为C和D,则发起攻击时,将共发起四次攻击,第
一次使用的Payload分别为A和C,第二次使用的Payload分别为A和D,第三次使用的
Payload分别为B和C,第四次使用的Payload分别为B和D。
就是把字典1的第一个数据和字典2的所有数据全部组合进行尝试,再把字典1的第二个数据和字典2的所有数据全部组合进行尝试


实例:
第一:通过长度,找寻那个不一样的长度来判断是否成功。

第二:通过状态码进行观察,成功可能返回的就是服务器给你认证成功的码200等。

第三:观察服务器 返回信息,不成功的都是返回到login.php登录页面,成功的在index.php(要自己寻找成功的那个关键字)。


利用上面发现的规则来进行自动筛选只有成功的才能出现。

点击下面添加的location: index.php这个头,就可以找到是否破解成功。

Payload Sets
payload类型总共18种,下面是列举的几种。

Simple list 简单字典:最简单的payload类型,配置一个字符串列表作为payload。


Runtime file 指定文件为payload

Custom iteratro 自定义迭代器
总共有8个展位,每一个占位都是简单列表的payload类型,然后根据占位的多少最后组合起来生成最终的payload列表。




Character substitution 字符替换
对字符进行替换,下面就是讲a、b替换成4和8生成新的payload。

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

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


Dates 生成日期作为payload进行测试。

Brute forcer 用于枚举字典,*力暴**破解

Null payloads 空字符串,可以用于Dos攻击

Character frobber
依次修改指定字符串在每个字符位置的值,每次都是在原字符上递增一个该字符的ASCII码

Username gnerator 用户名生成器,主要用于用户名和email账号的自动生成


Extension-generated 基于burp插件来生成payload值。

Options
Request Headers 主要用来控制请求消息的头部信息



Grep-Match 主要是用来从响应消息中提取结果项,如果匹配,则在攻击结果
中添加的新列中标明。比如说,在密码猜测攻击,扫描诸如"密码
不正确"或"登录成功",可以找到成功的登录;在测试SQL注入漏洞,扫描包
含"ODBC","错误"等消息可以识别脆弱的参数。

Intruder 攻击和结果分析

Attack菜单主要用来控制攻击行为
以暂停攻击(pause)、恢复攻击(resume)、再次攻击(repeat)。
Save菜单主要用来保存攻击的各种数据
Attack 保存当前攻击的副本,下次可以从此文件进行再次攻击;
Results table保存攻击的结果列表,相当于图中的Payload执行结果消息记录区数据,当然你可以选择行和列进行保存,只导出你需要的数据;
Server responses保存所有的服务器响应消息;
Attack configuration保存当前的攻击配置信息。
Columns菜单主要用来控制消息记录区的显示列,选中哪个哪个就在Payload执行结果消息记录区显示。
过滤器 ——可以通过查询条件、服务器响应的状态码、注释过Payload执行结果消息记录区的信息进行过滤。
有效的应答通常可以通过以下中的至少一个存在差异:
1.不同的HTTP状态代码
2.不同长度的应答
3.存在或不存在某些表达式
4.错误或超时的发生
5.用来接收或完成响应时间的差异 比如说,在URL路径扫描过程中,对不存在的资源的
请求可能会返回"404未找到"的响应,或正确的URL会反馈的"200 OK"响应。或者在密码猜测攻击,失败的登录尝试可能会产生一个包含"登录失败"关键字"200 OK"响应,而一个成功的登录可能会生成一个"302对象移动"的反应,或不同的"200 OK"响应页面。