burp suite 2023.10 Intruder模块详解)

burp suite 2023 Intruder模块详解

Intruder 模块是Burp suite的一个重要功能,用于自动化攻击和对目标应用程序进行大规模的攻击测试。

image-20231124222536103

其主要功能包括:

  1. Payloads 设置: 用户可以定义不同类型的 payload,例如字典、数字范围、定制字符集等。这些 payload 可以被插入到请求的特定位置,测试目标的弱点,比如尝试不同的用户名和密码组合进行暴力破解,或者测试 SQL 注入、XSS 等漏洞。
  2. 位置标记: Intruder 允许用户在请求中标记不同的位置,以便在攻击时替换成不同的 payload。这些标记可以是 URL 参数、Cookie、HTTP 请求头、请求正文等。
  3. 攻击类型: 提供了不同类型的攻击方式,包括 Sniper、Battering Ram、Cluster Bomb、Pitchfork 等。每种攻击方式有不同的特点,适用于不同类型的测试场景。
  4. 结果分析: Intruder 会对每次攻击的结果进行记录,并提供详细的分析报告。用户可以查看每个 payload 的响应,识别可能的安全漏洞和攻击成功点。
  5. 自动化: 用户可以通过设置规则和条件来自动化攻击过程,提高测试效率。例如,设置触发条件,当检测到特定响应内容或状态码时停止攻击。

Positions 设置Payloads的插入点以及攻击类型(攻击模式)。

Burp Suite 中的 Intruder 模块里的 Positions(位置)是指在攻击中用于注入 Payload(有效载荷)的特定位置或字段。这些位置可以是 HTTP 请求中的参数、标头、cookies 或正文中的特定部分。在 Intruder 模块中,你可以标记这些位置,然后将 Payload 插入到这些位置,以测试目标应用程序的安全性。

这些位置标记允许你定义要攻击的具体部分,比如尝试不同的用户名、密码、参数值或其他输入。在攻击期间,Burp Suite 将会针对这些位置自动化地替换 Payload,以便进行大规模的测试,识别目标应用程序可能存在的弱点或安全漏洞。

image-20231124222926694

Attack type攻击类型

Sniper(狙击手):

image-20231124230813698

  • 只能有一个payload

  • 这种攻击类型是指逐个处理 Payload 列表中的每个 Payload。

  • 每个 Payload 都会单独被插入到标记的位置,逐个测试,适用于针对单个位置进行深入测试的场景。

  • 如果设置了三个变量A、B、C,设置了九个payload,

  • image-20231124225650291

  • 那么先将payload插入到A变量中,当A变量测试完毕,将payload插入到B变量中,最后将payload插入到C变量进行测试.

  • image-20231124225359638

Battering Ram(破城锤):

image-20231124230823228

  • 只能有一个payload

  • 它是Sniper的升级版,和sniper相比,battering Ram更有效率,他的原理是,同时在多个变量中进行插入测试。

  • image-20231124230512644

Pitchfork(叉子):

image-20231124230831819

  • 允许设置多个payload。

  • 攻击类型是指同时处理两个位置,每个位置有各自的 Payload 列表。

  • image-20231124231652200

  • 它会按照不同的组合,将第一个 Payload 和第二个 Payload 一一配对,也就是说,他会同时去测试第一个payload和第二个payload的组合。(如果两个 Payload 列表的长度不一致,Pitchfork 模式会以数量较少的那个列表为基准,按照少的列表项数进行配对测试)

  • image-20231124231808535

  • 这种攻击方式可用于测试需要两个或多个位置同时受到影响的场景。

Cluster Bomb(集束炸弹):

  • 允许设置多个payload。

  • 它更像是Pitchfork的加强版,它的功能与Pitchfork一样,可以同时测试多个payload,不同的是它的测试方式,是使用笛卡尔积,例如设置两个变量A、B,和两个payload位置,payload会交叉测试,也就是说payload1首先会是在变量A的位置,去测变量B中的payload2中所有的参数 ,当变量B中的payload2所有参数都测试完,变量A、B的payload会互相交换位置,进行测试,用最通俗的话来讲,他们就是乘法关系,假如连个payload中的参数是4个,那么他就会测试4*4=16次。

  • image-20231124233343335

  • Cluster Bomb 通过组合 Payload 列表,生成了更多的组合,这样可以更全面、更彻底地测试目标应用程序,寻找潜在的漏洞。

位置标记变量

image-20231124233517960

Add(添加): 允许你添加要测试的目标。可以是 URL、HTTP 请求、参数等。通过此选项添加目标后,你可以设置 Payload 和其他攻击参数。

Clear(清除): 用于清除当前配置的所有设置,包括 Payload、Headers、位置标记等。这样可以快速清除并重新配置 Intruder,以便进行新的测试。

Auto(自动): 自动化选项,可以让 Burp Suite 在攻击时自动处理某些条件。例如,在遇到特定的响应内容或状态码时停止攻击,或者在攻击结束后自动保存结果。

Refresh(刷新): 用于刷新界面或数据,确保显示的内容是最新的状态。

payloads 设置payload,配置字典

它用于攻击目标的不同有效载荷或数据。在渗透测试、安全审计或漏洞测试中,Payloads 是指用于检测目标系统漏洞或弱点的各种输入。

image-20231124233653078

Payload Sets(Payload 集合):

这是一组不同类型、不同格式或不同目的的 Payload。Payload Sets 允许安全专业人员在测试中选择不同的 Payload 组合,比如用户名字典、密码字典、特殊字符集等。这些集合可以根据测试需求进行组织和配置。

payload set 就是用于设置payload数量,在Pitchfork、Cluster Bomb中可以去设置更多的payload数量进行测试

payload type 就是payload的类型,其中包括以下:

  1. Simple list(简单列表): 基本的常规 Payload 列表,可能包含用户名、密码或常见字符串。
  2. Runtime file(运行时文件): 在运行时生成或读取文件作为 Payload,用于测试文件上传或处理漏洞。
  3. Custom iterator(自定义迭代器): 使用自定义算法或迭代方法生成 Payload。
  4. Character substitution(字符替换): 对字符进行替换或修改来生成不同形式的 Payload。
  5. Case modification(大小写修改): 改变字符的大小写来生成不同形式的 Payload。
  6. Recursive grep(递归查找): 使用递归方式搜索目标系统,生成特定形式的 Payload。
  7. Illegal Unicode(非法 Unicode): 使用不合法或特殊的 Unicode 字符串生成 Payload。
  8. Character blocks(字符块): 将字符分组或分块,以块为单位生成 Payload。
  9. Numbers(数字): 针对数字型输入生成不同种类的数字 Payload。
  10. Dates(日期): 针对日期型输入生成不同形式的日期 Payload。
  11. Brute forcer(暴力破解器): 用于尝试各种可能性的暴力破解 Payload。
  12. Null payloads(空 Payload): 使用空值或空字符串作为 Payload。
  13. Character frobber(字符操作): 对字符进行多种操作生成 Payload。
  14. Bit flipper(位操作): 对比特位进行操作生成 Payload。
  15. Username generator(用户名生成器): 生成各种类型的用户名 Payload。
  16. ECB block shuffler(ECB 块置换器): 针对 ECB 模式加密的情况生成 Payload。
  17. Extension-generated(扩展生成): 由扩展或自定义脚本生成的特定 Payload。
  18. Copy other payload(复制其他 Payload): 复制已有 Payload 作为新的 Payload。
  19. Collaborator payloads(协作者 Payload): 使用 Burp Collaborator 进行协作的特定 Payload。

这里就不在进行测试了。

Payload Settings(Payload 设置):

这涉及对 Payload 进行特定配置的选项或设置。这些设置可能包括 Payload 的类型(例如字典、数字、特殊字符)、长度、频率等参数。Payload Settings 允许用户根据需要自定义和调整 Payload 的属性。

image-20231124234713045

Payload Processing(Payload 处理):

这指对 Payload 进行处理、编辑或转换的过程。这可能包括对 Payload 进行编码、加密、压缩或其他形式的修改,以适应目标系统的特定要求或规范。

image-20231124234727178

Payload Encoding(Payload 编码):

这涉及将 Payload 转换成特定格式或编码的过程。这种编码可以用于绕过输入过滤或实现特定攻击类型(例如 XSS 或 SQL 注入)。Payload Encoding 可以将 Payload 转换成 URL 编码、Base64 编码等形式,以确保在网络传输或系统处理中不会被错误解释。

image-20231124234851797

Resource pool 设置资源池

image-20231124235102478

在 Burp Suite 中,资源池(Resource Pool)可能涉及到设置并控制工具的并发效率。

  1. 连接池大小: 控制 Burp Suite 与目标应用程序之间建立的并发连接数量。较大的连接池大小可以允许 Burp 同时处理更多的连接,从而加快扫描速度或其他网络交互。
  2. 线程池设置: 用于控制 Burp Suite 执行任务所使用的线程数量。通过调整线程池的设置,可以影响工具执行扫描、代理、爆破等任务时的并发处理能力。

我们可以自己创建一个新的规则

image-20231124235642093

其中

  • 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(自动节流):它是一种功能,可以模拟不同网络速度下的应用程序行为。它通过限制请求的发送速率来模拟较慢的网络条件。

image-20231125111700350

它可以让你模拟低带宽或高延迟的网络条件,从而帮助你观察应用程序在这些条件下的反应,并找出潜在的性能问题,比如请求超时、页面加载速度慢或者应用程序在低网络条件下的不稳定行为。

它下面的参数 429、503、Other,的意思是说明。在服务器返回相同的状态码,触发automatic throttling功能。

Settings (intruder设置)

Save attack(保存攻击):

保存攻击,允许你将攻击的配置保存为文件,以便稍后重用或共享。

  • image-20231125112855228

当点击保存选项后,保存的攻击文件通常保存在Burp Suite的工作目录中的特定文件夹中。

Request headers(请求头部信息):

设置用于攻击的请求头部信息。你可以在这里编辑或修改请求头。

image-20231125113438944

这里有两个选项:

  • Update Content_Length herder
    • 如果你选择了这个选项,在你修改了请求的内容后,Burp Suite会自动更新请求头中的Content-Length字段。这确保了Content-Length字段的值与实际请求体的长度相匹配,保证了请求的有效性和正确性。
  • set Connection header:
    • 如果你选择了这个选项并设置了Connection头部的值,Burp Suite会在发送请求时将设置的Connection头部值包含在请求中。例如,如果你设置为 “close”,那么在请求完成后服务器可能会关闭连接,而设置为 “keep-alive” 则可能会保持连接打开。
Error handling(错误处理):

定义在攻击过程中如何处理错误响应。你可以配置Burp如何识别和处理错误。

image-20231125113918068

其中有两个配置参数:

Number of retries on network failure(网络故障时的重试次数):

  • 这个选项允许你设置在网络失败时Burp Suite尝试重新发送请求的次数。如果在发送请求时发生网络故障(例如连接超时或网络错误),Burp Suite可以根据你设置的值尝试重新发送请求。

pause before retry(milliseconds)(网络失败重试次数):

  • 这个选项允许你设置在进行重试之前的暂停时间,单位为毫秒。当网络失败后,Burp Suite会在进行下一次重试之前等待设置的暂停时间。
Attack results(攻击结果):

配置攻击结果的处理方式,比如是否保存攻击结果、保存格式等。

image-20231125180626960

  • 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:

从响应中提取特定的部分文本。这可以用于从响应中提取并进一步利用感兴趣的数据。

image-20231125181338175

Grep - payloads:

配置Burp在响应中寻找的有效负载,用于在攻击中识别有效的注入点或漏洞。

image-20231125181434845

Redirections:

控制是否跟随重定向。你可以设置Burp如何处理攻击中的重定向。

image-20231125181450388

HTTP/1 connection reuse:

控制是否重用HTTP/1连接。你可以配置Burp是否允许在攻击中重用连接。

image-20231125181512738

HTTP version:

设置要使用的HTTP协议版本,允许你指定攻击时使用的HTTP协议版本。

image-20231125181521683

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/217876.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring本地事务与单/多线程

请直接看原文 原文链接:多线程与数据库事务以及数据库连接之间的关系 - 知乎 (zhihu.com) -------------------------------------------------------------------------------------------------------------------------------- 今天我们来梳理一下, 多线程、数…

Selenium+Pytest自动化测试框架实战

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

java集合,ArrayList、LinkedList和Vector,多线程场景下如何使用 ArrayList

文章目录 Java集合1.2 流程图关系1.3 底层实现1.4 集合与数组的区别1.4.1 元素类型1.4.2 元素个数 1.5 集合的好处1.6 List集合我们以ArrayList集合为例1.7 迭代器的常用方法1.8 ArrayList、LinkedList和Vector的区别1.8.1 说出ArrayList,Vector, LinkedList的存储性能和特性1.…

1、Mysql架构与历史

Mysql逻辑架构 最上层是服务并不是Mysql所独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构,比如连接处理,授权认证,安全等。 第二层是Mysql比较有意思的部分。大多数Mysql的核心服务都在这一层,…

2024北京理工大学计算机考研分析

24计算机考研|上岸指南 北京理工大学 计算机学院始建于1958年,是全国最早设立计算机专业的高校之一。2018年4月,计算机学院、软件学院、网络科学与技术研究院合并成立新的计算机学院。学院累计为国家培养各类人才15000余名。计算机科学学科ESI排名进入全…

AD9528学习笔记

前言 AD9528是ADI的一款时钟芯片,由2-stage PLL组成,并且集成JESD204B/JESD204C SYSREF信号发生器,SYSREF发生器输出单次、N次或连续信号,并与PLL1和PLL2输出同步,从而可以实现多器件之间的同步。 AD9528总共有14路输…

QT visual stdio加载动态库报错126问题

报错126是找不到指定的模块 QT 查看构建目录,将依赖的动态库放到该目录下即可成功 visual stdio将依赖的动态库放到运行目录 在vs中使用导出类的动态库时,不但需要将对应的.dll放到对应的目录下,还需要将该动态库对应的.lib添加到如下配置才…

强化学习,快速入门与基于python实现一个简单例子(可直接运行)

文章目录 一、什么是“强化学习”二、强化学习包括的组成部分二、Q-Learning算法三、迷宫-强化学习-Q-Learning算法的实现全部代码(复制可用)可用状态空间检查是否超出边界epsilon 的含义更新方程 总结 一、什么是“强化学习” 本文要记录的大概内容&am…

Windows窗体学这一篇就够了(C#控件讲解)

目录 一、Form窗体 1.1窗体的创建和删除 1、添加窗体 2、删除窗体 3、多窗体的使用 1.2、窗体属性 1.2.1更换窗体图标 1.2.2隐藏窗体的标题栏(FormBorderStyle属性) 1.2.3控制窗体的显示位置(StartPosition属性) 1.2.4窗体背景图片的设置 1.2.5窗体的显示与隐藏 1.…

“不得了·放飞杯” 2023年四川省健身健美锦标赛启动在成都隆重召开

“不得了放飞杯” 2023年四川省健身健美锦标赛启动在成都隆重召开 为了更好地推动四川省健身健美运动的普及和发展,结合《四川全民健身实施计划》的现状,适应新时代健身私教服务产业的发展需求,由中国健美协会指导,四川省健美健美…

ethernet II 的故事

以太帧有很多种类型。不同类型的帧具有不同的格式和MTU值。但在同种物理媒体上都可同时存在。 以太网第二版或者称之为Ethernet II 帧,DIX帧,是最常见的帧类型。并通常直接被IP协议使用。 格式 当数据帧到达网卡时,网卡要先去掉前导码&#…

Linux基本指令(前篇)

目录 1.ls指令 2.pwd指令 3.cd 指令 4.touch指令 5.mkdir指令(重要) 6.rmdir指令 && rm 指令(重要) 7.man指令(重要) 1.ls指令 ls 选项 目录或文件 对于目录,该命令列出该目录下的所…