burp suite 2023 Intruder模块详解
Intruder 模块是Burp suite的一个重要功能,用于自动化攻击和对目标应用程序进行大规模的攻击测试。
其主要功能包括:
- Payloads 设置: 用户可以定义不同类型的 payload,例如字典、数字范围、定制字符集等。这些 payload 可以被插入到请求的特定位置,测试目标的弱点,比如尝试不同的用户名和密码组合进行暴力破解,或者测试 SQL 注入、XSS 等漏洞。
- 位置标记: Intruder 允许用户在请求中标记不同的位置,以便在攻击时替换成不同的 payload。这些标记可以是 URL 参数、Cookie、HTTP 请求头、请求正文等。
- 攻击类型: 提供了不同类型的攻击方式,包括 Sniper、Battering Ram、Cluster Bomb、Pitchfork 等。每种攻击方式有不同的特点,适用于不同类型的测试场景。
- 结果分析: Intruder 会对每次攻击的结果进行记录,并提供详细的分析报告。用户可以查看每个 payload 的响应,识别可能的安全漏洞和攻击成功点。
- 自动化: 用户可以通过设置规则和条件来自动化攻击过程,提高测试效率。例如,设置触发条件,当检测到特定响应内容或状态码时停止攻击。
Positions 设置Payloads的插入点以及攻击类型(攻击模式)。
Burp Suite 中的 Intruder 模块里的 Positions(位置)是指在攻击中用于注入 Payload(有效载荷)的特定位置或字段。这些位置可以是 HTTP 请求中的参数、标头、cookies 或正文中的特定部分。在 Intruder 模块中,你可以标记这些位置,然后将 Payload 插入到这些位置,以测试目标应用程序的安全性。
这些位置标记允许你定义要攻击的具体部分,比如尝试不同的用户名、密码、参数值或其他输入。在攻击期间,Burp Suite 将会针对这些位置自动化地替换 Payload,以便进行大规模的测试,识别目标应用程序可能存在的弱点或安全漏洞。
Attack type攻击类型
Sniper(狙击手):
-
只能有一个payload
-
这种攻击类型是指逐个处理 Payload 列表中的每个 Payload。
-
每个 Payload 都会单独被插入到标记的位置,逐个测试,适用于针对单个位置进行深入测试的场景。
-
如果设置了三个变量A、B、C,设置了九个payload,
-
那么先将payload插入到A变量中,当A变量测试完毕,将payload插入到B变量中,最后将payload插入到C变量进行测试.
Battering Ram(破城锤):
-
只能有一个payload
-
它是Sniper的升级版,和sniper相比,battering Ram更有效率,他的原理是,同时在多个变量中进行插入测试。
Pitchfork(叉子):
-
允许设置多个payload。
-
攻击类型是指同时处理两个位置,每个位置有各自的 Payload 列表。
-
它会按照不同的组合,将第一个 Payload 和第二个 Payload 一一配对,也就是说,他会同时去测试第一个payload和第二个payload的组合。(如果两个 Payload 列表的长度不一致,Pitchfork 模式会以数量较少的那个列表为基准,按照少的列表项数进行配对测试)
-
这种攻击方式可用于测试需要两个或多个位置同时受到影响的场景。
Cluster Bomb(集束炸弹):
-
允许设置多个payload。
-
它更像是Pitchfork的加强版,它的功能与Pitchfork一样,可以同时测试多个payload,不同的是它的测试方式,是使用笛卡尔积,例如设置两个变量A、B,和两个payload位置,payload会交叉测试,也就是说payload1首先会是在变量A的位置,去测变量B中的payload2中所有的参数 ,当变量B中的payload2所有参数都测试完,变量A、B的payload会互相交换位置,进行测试,用最通俗的话来讲,他们就是乘法关系,假如连个payload中的参数是4个,那么他就会测试4*4=16次。
-
Cluster Bomb 通过组合 Payload 列表,生成了更多的组合,这样可以更全面、更彻底地测试目标应用程序,寻找潜在的漏洞。
位置标记变量
Add(添加): 允许你添加要测试的目标。可以是 URL、HTTP 请求、参数等。通过此选项添加目标后,你可以设置 Payload 和其他攻击参数。
Clear(清除): 用于清除当前配置的所有设置,包括 Payload、Headers、位置标记等。这样可以快速清除并重新配置 Intruder,以便进行新的测试。
Auto(自动): 自动化选项,可以让 Burp Suite 在攻击时自动处理某些条件。例如,在遇到特定的响应内容或状态码时停止攻击,或者在攻击结束后自动保存结果。
Refresh(刷新): 用于刷新界面或数据,确保显示的内容是最新的状态。
payloads 设置payload,配置字典
它用于攻击目标的不同有效载荷或数据。在渗透测试、安全审计或漏洞测试中,Payloads 是指用于检测目标系统漏洞或弱点的各种输入。
Payload Sets(Payload 集合):
这是一组不同类型、不同格式或不同目的的 Payload。Payload Sets 允许安全专业人员在测试中选择不同的 Payload 组合,比如用户名字典、密码字典、特殊字符集等。这些集合可以根据测试需求进行组织和配置。
payload set 就是用于设置payload数量,在Pitchfork、Cluster Bomb中可以去设置更多的payload数量进行测试
payload type 就是payload的类型,其中包括以下:
- Simple list(简单列表): 基本的常规 Payload 列表,可能包含用户名、密码或常见字符串。
- Runtime file(运行时文件): 在运行时生成或读取文件作为 Payload,用于测试文件上传或处理漏洞。
- Custom iterator(自定义迭代器): 使用自定义算法或迭代方法生成 Payload。
- Character substitution(字符替换): 对字符进行替换或修改来生成不同形式的 Payload。
- Case modification(大小写修改): 改变字符的大小写来生成不同形式的 Payload。
- Recursive grep(递归查找): 使用递归方式搜索目标系统,生成特定形式的 Payload。
- Illegal Unicode(非法 Unicode): 使用不合法或特殊的 Unicode 字符串生成 Payload。
- Character blocks(字符块): 将字符分组或分块,以块为单位生成 Payload。
- Numbers(数字): 针对数字型输入生成不同种类的数字 Payload。
- Dates(日期): 针对日期型输入生成不同形式的日期 Payload。
- Brute forcer(暴力破解器): 用于尝试各种可能性的暴力破解 Payload。
- Null payloads(空 Payload): 使用空值或空字符串作为 Payload。
- Character frobber(字符操作): 对字符进行多种操作生成 Payload。
- Bit flipper(位操作): 对比特位进行操作生成 Payload。
- Username generator(用户名生成器): 生成各种类型的用户名 Payload。
- ECB block shuffler(ECB 块置换器): 针对 ECB 模式加密的情况生成 Payload。
- Extension-generated(扩展生成): 由扩展或自定义脚本生成的特定 Payload。
- Copy other payload(复制其他 Payload): 复制已有 Payload 作为新的 Payload。
- Collaborator payloads(协作者 Payload): 使用 Burp Collaborator 进行协作的特定 Payload。
这里就不在进行测试了。
Payload Settings(Payload 设置):
这涉及对 Payload 进行特定配置的选项或设置。这些设置可能包括 Payload 的类型(例如字典、数字、特殊字符)、长度、频率等参数。Payload Settings 允许用户根据需要自定义和调整 Payload 的属性。
Payload Processing(Payload 处理):
这指对 Payload 进行处理、编辑或转换的过程。这可能包括对 Payload 进行编码、加密、压缩或其他形式的修改,以适应目标系统的特定要求或规范。
Payload Encoding(Payload 编码):
这涉及将 Payload 转换成特定格式或编码的过程。这种编码可以用于绕过输入过滤或实现特定攻击类型(例如 XSS 或 SQL 注入)。Payload Encoding 可以将 Payload 转换成 URL 编码、Base64 编码等形式,以确保在网络传输或系统处理中不会被错误解释。
Resource pool 设置资源池
在 Burp Suite 中,资源池(Resource Pool)可能涉及到设置并控制工具的并发效率。
- 连接池大小: 控制 Burp Suite 与目标应用程序之间建立的并发连接数量。较大的连接池大小可以允许 Burp 同时处理更多的连接,从而加快扫描速度或其他网络交互。
- 线程池设置: 用于控制 Burp Suite 执行任务所使用的线程数量。通过调整线程池的设置,可以影响工具执行扫描、代理、爆破等任务时的并发处理能力。
我们可以自己创建一个新的规则
其中
-
Maximum concurrent requests(最大并发请求):就是设置并发的最大数量,这个值越大,burp suite的效率就越高,
-
Delay between requests(请求之间的延迟):设置请求之间的延迟,是指在进行扫描、爆破或其他与目标系统交互的操作时,Burp Suite 发送连续请求之间的时间间隔。
- Fixed(固定): 指定一个固定的延迟时间,Burp Suite 在发送每个请求时都会等待这个固定的时间间隔,保持间隔不变。
- With random variations(带随机变化): 在固定延迟的基础上,可能会增加一定的随机性,即在固定的基础上添加随机的延迟时间。这有助于模拟真实用户的行为,因为真实用户的行为往往不是完全规律和预测的。
- Increase delay in increments of(递增延迟): 这个选项可能允许用户指定一个初始延迟时间,并且可以按照一定的增量逐步增加延迟时间。例如,可以设置初始延迟时间为1秒,然后每次增加1秒,或者按照其他规则逐步增加延迟时间。这样做的目的可能是逐步测试目标系统的稳定性或防御机制的反应。
Automatic throttling(自动节流):它是一种功能,可以模拟不同网络速度下的应用程序行为。它通过限制请求的发送速率来模拟较慢的网络条件。
它可以让你模拟低带宽或高延迟的网络条件,从而帮助你观察应用程序在这些条件下的反应,并找出潜在的性能问题,比如请求超时、页面加载速度慢或者应用程序在低网络条件下的不稳定行为。
它下面的参数 429、503、Other,的意思是说明。在服务器返回相同的状态码,触发automatic throttling功能。
Settings (intruder设置)
Save attack(保存攻击):
保存攻击,允许你将攻击的配置保存为文件,以便稍后重用或共享。
当点击保存选项后,保存的攻击文件通常保存在Burp Suite的工作目录中的特定文件夹中。
Request headers(请求头部信息):
设置用于攻击的请求头部信息。你可以在这里编辑或修改请求头。
这里有两个选项:
- Update Content_Length herder:
- 如果你选择了这个选项,在你修改了请求的内容后,Burp Suite会自动更新请求头中的Content-Length字段。这确保了Content-Length字段的值与实际请求体的长度相匹配,保证了请求的有效性和正确性。
- set Connection header:
- 如果你选择了这个选项并设置了Connection头部的值,Burp Suite会在发送请求时将设置的Connection头部值包含在请求中。例如,如果你设置为 “close”,那么在请求完成后服务器可能会关闭连接,而设置为 “keep-alive” 则可能会保持连接打开。
Error handling(错误处理):
定义在攻击过程中如何处理错误响应。你可以配置Burp如何识别和处理错误。
其中有两个配置参数:
Number of retries on network failure(网络故障时的重试次数):
- 这个选项允许你设置在网络失败时Burp Suite尝试重新发送请求的次数。如果在发送请求时发生网络故障(例如连接超时或网络错误),Burp Suite可以根据你设置的值尝试重新发送请求。
pause before retry(milliseconds)(网络失败重试次数):
- 这个选项允许你设置在进行重试之前的暂停时间,单位为毫秒。当网络失败后,Burp Suite会在进行下一次重试之前等待设置的暂停时间。
Attack results(攻击结果):
配置攻击结果的处理方式,比如是否保存攻击结果、保存格式等。
- Store requests: 保存请求。启用这个选项后,Burp Suite会保存发送的请求,你可以随时查看和分析这些请求,有助于审查攻击过程中发送的具体请求内容。
- Store responses: 保存响应。启用这个选项后,Burp Suite会保存从服务器收到的响应,这有助于审查攻击后服务器的响应内容和状态。
- Make unmodified baseline request: 发送未修改的基线请求。这个选项允许在攻击过程中发送一个未修改的基准请求,用于比较其他攻击请求的效果。这有助于分析和比较攻击请求与原始请求的差异。
- Use denial-of-service mode (no results): 使用拒绝服务模式(无结果)。启用这个选项后,Burp Suite会执行攻击,但不会保存任何结果。这个模式用于模拟攻击,但不会生成结果,通常用于测试负载和目标系统的承受能力,而不会生成分析结果。
- Store full payloads: 保存完整的有效负载。启用这个选项后,Burp Suite会保存攻击中使用的完整有效负载数据,有助于分析和审查使用的有效负载。
Grep - match:
定义匹配规则以筛选攻击响应中的特定文本。这可以用于标识成功的攻击或者查找感兴趣的信息。
Grep - Extract:
从响应中提取特定的部分文本。这可以用于从响应中提取并进一步利用感兴趣的数据。
Grep - payloads:
配置Burp在响应中寻找的有效负载,用于在攻击中识别有效的注入点或漏洞。
Redirections:
控制是否跟随重定向。你可以设置Burp如何处理攻击中的重定向。
HTTP/1 connection reuse:
控制是否重用HTTP/1连接。你可以配置Burp是否允许在攻击中重用连接。
HTTP version:
设置要使用的HTTP协议版本,允许你指定攻击时使用的HTTP协议版本。