Burp-Intruder模块详解

Posted rain99-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Burp-Intruder模块详解相关的知识,希望对你有一定的参考价值。

Intruder的四个模块:

1:Target 用于配置目标服务器进行攻击的详细信息。
2:Positions 设置Payloads的插入点以及攻击类型(攻击模式)。
3:Payloads 设置payload,配置字典
4:Opetions 此选项卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections。
你可以发动攻击之前,在主要Intruder的UI上编辑这些选项,大部分设置也可以在攻击时对已在运行的窗口进行修改。

1:Target 目标选项

这个选项是用来配置目标服务器的细节:
技术图片

在BurpSuite任何请求处,右键菜单选择“Send to intruder”选项,将自动发送到此模块下并自动填充以上内容

2:Positions 位置选项

这个选项是用来配置在攻击里产生的所有 HTTP 请求的模板:
技术图片

你可以使用选项上的按钮来控制位置上的标记:
ttack type:攻击模式设置
sniper:对变量依次进行破解。多个标记依次进行。
battering ram:对变量同时进行破解。多个标记同时进行。
pitchfork:每一个变量标记对应一个字典,取每个字典的对应项。
cluster bomb:每个变量对应一个字典,并且进行交集破解,尝试各种组合。适用于用户名+密码的破解。
add:插入一个新的标记
clear:清除所有的标记
auto:自动设置标记,一个请求发到该模块后burpsuite会自动标记cookie URL等参数。 这是一个为攻击常规漏洞(SQL 注入)快速标记出合适位置的有用的功能,然后人工标记是为自定义攻击的。
refresh:如果必要的话,这可以要求模板编辑器的语法高亮。
clear : 删除整个编辑器内容

3:Payloads 有效负荷选项

这个选项是用来配置一个或多个有效负荷的集合。如果定义了”cluster bomb”和”pitchfork”攻击类型,然后必须为每定义的有效负荷位置(最多8个)配置一个单独的有效负荷。使用”payload set”下拉菜单选择要配置的有效负荷。
技术图片

选项1:Payload数量类型设置

Payload Set:指定需要配置的变量
Payload type:Payload类型。
这里只介绍部分常用Payload,其他Payload可自行研究。
Simple list:简单字典
Runtime file:运行文件
Custom iterator:自定义迭代器
Character substitution:字符替换
Recursive grep:递归查找
lllegal unicode:非法字符
Character blocks:字符块
Numbers:数字组合
Dates:日期组合
Brute forcer:暴力破解
Null payloads:空payload
Username generator:用户名生成
copy other payload:复制其他payload

选项2:Payload Opetions[Simple list]

该选项会根据选项1中Payload type的设置而改变
技术图片
技术图片

选项3:Payload Processing

对生成的Payload进行编码、加密、截取等操作
技术图片

add:添加一条规则,会弹出添加操作窗口,可添加的规则如下:
Add prefix – 添加一个文字前缀
Add suffix – 添加一个文字后缀
Match/replace – 将替换匹配特定正则表达式的有效载荷的任何部位,用一个文字字符串表示。
Substring – 提取的有效载荷的子部分中,从指定的偏移量(0-索引)和至所指定的长度开始。
Reverse substring – 对于子规则来说,最终的偏移量指定的有效载荷的末尾向后计数,并且长度从端部向后偏移计数。
Modify case – 这个修改了的有效载荷的情况下,如果适用的话。同样的选项作为的情况下修改有效载荷类型。
Encode – URL,html,Base64的,ASCII码或十六进制字符串构建各种平台:采用不同的计划,该编码的有效载荷。
Hash – hash
Add raw payload – 这之前或之后,在当前处理的值增加了原始负载值。它可以是有用的,例如,如果你需要提交相同的有效载荷在raw和哈希表。
Skip raw payload – 将检查是否当前处理的值匹配指定的正则表达式,如果是这样,跳过有效载荷和移动到下一个。这可能是有用的,例如,如果知道一个参数值必须有一个最小长度和要跳过的一个列表,比这更短的长度的任何值。
Invoke Burp extension – 调用一个Burp exxtension(扩展)来处理负载。扩展名必须已注册入侵者有效载荷处理器。您可以从已注册的当前加载的扩展可用的处理器列表中选择所需的处理器。
Edit:编辑一条规则。
Remove:删除一条规则。
Up:上移。
Down:下移。
技术图片

选项4:Payload Encoding

你可以配置哪些有效载荷中的字符应该是URL编码的HTTP请求中的安全传输。任何已配置的URL编码最后应用,任何有效载荷处理规则执行之后。 这是推荐使用此设置进行最终URL编码,而不是一个有效载荷处理规则,因为可以用来有效载荷的grep选项来检查响应为呼应有效载荷的最终URL编码应用之前。
技术图片

4:Opetions 选项卡

此选项卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections。你可以发动攻击之前,在主要Intruder的UI上编辑这些选项,大部分设置也可以在攻击时对已在运行的窗口进行修改。
技术图片

选项1:Request Headers

这些设置控制在Intruder是否更新配置请求头。
技术图片

如果选中‘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会放弃和移动之前重试的请求指定的次数。
ause before retry:重试前等待时间,当重试失败的请求,Burp会等待指定的时间(以毫秒为单位),然后重试。
Throttle between requests:请求之间的等待时间,Burp可以在每次请求之前等待一个指定的延迟(以毫秒为单位) 。此选项很有用,以避免超载应用程序,或者是更隐蔽。
Start time:开始时间,此选项允许您配置攻击立即启动,或在指定的延迟后,或开始处于暂停状态。
技术图片

选项3:Attack Results

设置攻击结果的显示。
Store requests/responses:存储请求/响应,这个选项确定攻击是否会保存单个请求和响应的内容
Make unmodified baseline request:未修改的基本请求,如果选择此选项,那么除了配置的攻击请求,Burp会发出模板请求设置为基值,所有有效载荷的位置。此请求将在结果表显示为项目# 0 。使用此选项很有用,提供一个用来比较的攻击响应基地的响应。
Use denial-of-service mode:使用拒绝服务的模式,如果选择此选项,那么攻击会发出请求,如正常,但不会等待处理从服务器收到任何答复。只要发出的每个请求, TCP连接将被关闭。这个功能可以被用来执行拒绝服务的应用层对脆弱的应用程序的攻击,通过重复发送该启动高负荷任务的服务器上,同时避免通过举办开放套接字等待服务器响应锁定了本地资源的请求。
Store full payloads:保存完整的有效载荷。如果选择此选项,Burp将存储全部有效载荷值的结果。

选项4:Grep – Match

在响应中找出存在指定的内容的一项。 可以通过列表旁边的操作按钮对列表中的选项进行操作,我们也可以通过add添加我们自定义的内容。
Match:匹配类型,指定的表达式是否是简单的字符串或regular expressions(正则表达式)。
Case sensitive match:区分大小写的匹配,指定检查表达式是否应区分大小写。
Exclude HTTP headers:排除HTTP头,指定的HTTP响应头是否应被排除在检查。
技术图片

选项5:Grep – Extract

通过正则提取返回信息中的内容。
点击ADD就弹出正则编辑窗口,如图我们选中我们需要获取的部分就可以自动生成正则表达式。点击OK就可以在列表中添加这条正则表达式。
技术图片

选项6:Grep – Payloads

这些设置可以用于包含已提交的有效负载的反射的标志结果项目。如果启用了此选项,BurpSuite会添加包含一个复选框指示当前负载的值在每个响应发现新的结果列。
Search responses for payload strings:在响应中搜索Payload。
Case sensitive match:区分大小写,此指定是否对有效负载的检查区分大小写。
Exclude HTTP headers:排除HTTP标头,不对HTTP响应头进行检查。
Match against pre-URL-encoded payloads:对预URL编码的有效载荷匹配。
技术图片

选项7:Redirections

重定向响应,控制Burp在进行攻击时如何处理重定向。 Follow redirections:跟随重定向
Never:不跟随重定向(关闭跟随重定向)。
On-site only:只会跟随重定向到同一个网页“网站” ,即使用相同的主机,端口和协议的是在原始请求使用的URL 。
In-scope only:只跟随范围内,Intruder只会跟随重定向到目标范围之内的URL 。
Always:总是跟随重定向,将遵循重定向到任何任何URL。(此选项可能会引导burp到其他网站)
技术图片

配置好相关的内容后就可以点击任意模块右上角的start attack或者菜单栏中的Intruder->start attack发起攻击请求。

Intruder爆破模式

Intruder支持多种爆破模式、加密和编码支持。常见的md5、base64、shal加密方式,都可以用burpsuite直接处理。 Intruder 爆破模式分别是:
Sniper(狙击手模式)单一字典爆破 Battering ram(攻城锤模式) 多字段相同字典爆破 Pitchfork(草叉模式) 多字典意义对应爆破 Cluster bomb(集束炸弹模式) 聚合式爆破

Sniper(狙击手模式) 单一字典爆破

抓包拦截后放到 intruder里面,软件自动把所有的变量进行了标识化,然后根据自己需要,就只把密码这个变量进行标识化。 当使用sniper模式时,加载一个单一的payload,对标记点进行爆破,当然,如果只有一个标记点不用说,直接爆破。但是这个模式对于两个或者两个以上的标记点采用的方法时其中一个标记点加载字典内容,另一个标记点保持默认,当字典结束之后,互相交换,之前加载字典的标记点变成默认,默认的变成加载字典如下图所示:
技术图片

狙击手模式使用一组payload集合,它一次只使用一个payload位置,假设你标记了两个位置“A”和“B”,payload值为“1”和“2”,那么它攻击会形成以下组合(除原始数据外):
攻击 NO. 标记 A 标记 B
1 1 默认
2 2 默认
3 默认 1
4 默认 2

Battering ram(攻城锤模式) 多字段相同字典爆破

这里Battering ram指的是只加载一个字典,如果只有一个标记点,那么没什么区别,如果有多个标记点,那么标记点的内容是一样的,都是字典中的某一个,所以因为名字叫做“攻城锤”,狙击枪变成锤子啦,哈哈哈哈…….如下图:
技术图片

攻城锤模式与狙击手模式类似的地方是,同样只使用一个payload集合,不同的地方在于每次攻击都是替换所有payload标记位置,而狙击手模式每次只能替换一个payload标记位置。
攻击 NO. 标记 A 标记 B
1 1 1
2 2 2

Pitchfork(草叉模式) 多字典意义对应爆破

这个方法比较特殊,要求必须传入两个以上的标记点,如果只有一个会报错 草叉模式允许使用多组payload组合,在每个标记位置上遍历所有payload组合,假设有两个位置“A”和“B”,payload组合1的值为“1”和“2”,payload组合2的值为“3”和“4”,则攻击模式如下:
攻击 NO. 标记 A 标记 B
1 1 3
2 2 4
个人理解就是:不同字典爆破不同字段(即相对字段相对字典爆破)
技术图片

Cluster bomb(集束炸弹模式) 聚合式爆破

集束炸弹模式跟草叉模式不同的地方在于,集束炸弹模式会对payload组进行笛卡尔积,还是上面的例子,如果用集束炸弹模式进行攻击,则除baseline请求外,会有四次请求:
攻击 NO. 标记 A 标记 B
1 1 3
2 1 4
3 2 3
4 2 4
技术图片

此外,抓包发送到Intruder,标记相关参数选择第四种模式“Cluster bomb”时,分别选择用户名字典和密码字典,在设置密码字典的时候,可以选择md5加密方式对密码字段进行加密处理
技术图片

3、开始进行爆破,根据返回字段长度判断是否成功,成功获取用户名和密码字段的MD5值 admin:21232f297a57a5a743894a0e4a801fc3
技术图片

4、md5解密成功,获得用户名密码 admin/admin
技术图片

参考

https://www.wanqiandu.com/5733.html
https://www.lstazl.com/burpsuite之爆破功能详解/

以上是关于Burp-Intruder模块详解的主要内容,如果未能解决你的问题,请参考以下文章

python3 常用模块详解

angular模块详解

JavaScript模块化规范详解

Python模块调用方式详解

详解node中引入模块的原理

python datetime模块参数详解