【愚公系列】《Web应用安全》009-Intruder 模块的使用

📅 发布时间:2026/8/23 19:50:49
【愚公系列】《Web应用安全》009-Intruder 模块的使用
【行业认证·权威头衔】✔ 华为云天团核心成员特约编辑/云享专家/开发者专家/产品云测专家✔ 开发者社区全满贯CSDN博客商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金亚马逊51CTO顶级博主✔ 技术生态共建先锋横跨鸿蒙、云计算、AI等前沿领域的技术布道者【荣誉殿堂】 连续三年蝉联华为云十佳博主2022-2024 双冠加冕CSDN年度博客之星TOP220222023 十余个技术社区年度杰出贡献奖得主【知识宝库】覆盖全栈技术矩阵◾ 编程语言.NET/Java/Python/Go/Node…◾ 移动生态HarmonyOS/iOS/Android/小程序◾ 前沿领域物联网/网络安全/大数据/AI/元宇宙◾ 游戏开发Unity3D引擎深度解析文章目录前言项目描述项目分析任务二Intruder 模块的使用2.1 任务概述2.2 任务分析2.3 相关知识Positions 选项卡2.4 工作任务2.5 归纳总结2.6 提高拓展【附】AI 提示词模板前言项目描述Burp Suite 是用于攻击 Web 应用程序的集成平台包含了许多工具Burp Suite 为这些工具设计了许多接口以加快攻击应用程序的过程。所有 Burp Suite 都共享一个请求该工具能够更好地帮助测试人员对目标站点的请求数据进行分析与测试。项目分析Burp Suite 作用于浏览器与服务器之间该工具可以对抓取到的 HTTP 请求数据包进行重放、爆破等操作。在该项目中需要明确 Burp Suite 的抓包方法并熟悉 Proxy、Intruder 和 Repeater 模块的使用方法。任务二Intruder 模块的使用2.1 任务概述Burp Suite 的Intruder 模块是一个强大的工具利用该模块可以对 Web 应用程序进行自定义检测攻击。Intruder 也是一个高度可配置的工具可以在指定范围内进行自动化攻击。Intruder 模块可以方便地执行许多任务包括枚举标识符、获取有用数据、漏洞模糊测试等。根据应用程序的具体情况应选择相应的攻击类型例如针对缺陷测试可以选择 SQL 注入、跨站点脚本、缓冲区溢出、路径遍历等。在 phpStudy 的站点根目录中创建demo.php文件在文件中写入如下内容meta charsetUTF-8?phpif(isset($_GET[num])){if(intval($_GET[num])66){echotime(). Success;}else{echonum为数字范围0~100;}}else{echo请用GET请求提交变量num;}?利用 Burp Suite 的 Intruder 模块进行遍历获取并提交num的值使页面成功输出“Success”字段。2.2 任务分析Burp Suite 的 Intruder 模块可以对代理模块中抓取到的 HTTP 请求数据包进行参数设定根据设定的参数选择攻击模式与数据。在发送完测试数据后对响应结果进行排序与分析然后找到正确的数据即可。2.3 相关知识在 Burp Suite 的主菜单中单击“Intruder”按钮即可查看 Intruder 模块的功能如图 6-15 所示。该模块的顶部存在以下4 个选项卡选项卡功能说明Positions有效载荷位置设置 Payloads 的插入点以及攻击类型攻击模式Payloads有效载荷设置测试的 Payloads、配置字典Resource Pool资源池攻击线程配置Options选项包含 request headers、error handling、attack results、grep match、grep extract、grep payloads 和 redirections。在发动攻击之前可以在该选项卡下进行所需要的配置在配置完成后单击“Start attack”按钮即可开始攻击测试。Positions 选项卡Positions 选项卡可以设定爆破位置和爆破类型。在Payload Positions下可以根据 HTTP 请求数据包中的请求数据选择需要爆破的位置在需要爆破的数据两边添加§符号注意原文中显示为符号实际 Burp Suite 中使用§符号标记爆破位置。在确定攻击位置后可在此选择攻击类型Attack type共有4 种可选的攻击类型如图 6-16 所示攻击类型说明示例Sniper狙击手依次对变量进行破解多个标记一次进行。适用于用户名或密码的单一变量爆破一个位置一个字典逐个替换Battering ram破城槌同时对变量进行破解多个标记同时进行。对于多个变量只能提供一个字典位置 A 和 B字典 {1,2} → 攻击组合(1,1)、(2,2)Pitchfork音叉每个变量对应一个字典取每个字典的对应项字典1 {1,2}字典2 {3,4} → 攻击组合(1,3)、(2,4)Cluster bomb集束炸弹每个变量对应一个字典并且进行交集破解尝试各种组合。适用于用户名和密码的破解字典1 {1,2}字典2 {3,4} → 攻击组合(1,3)、(1,4)、(2,3)、(2,4)2.4 工作任务开启 phpStudy 站点服务并按要求创建demo.php文件写入指定代码内容。使用 Firefox 浏览器访问http://127.0.0.1/demo.phpdemo.php的页面显示如图 6-17 所示。按要求传入参数可传入任意数据提交后页面显示如图 6-18 所示。页面显示num为数字其范围为 0 至 100 之间。如果以手工的方式提交请求那么最终能够试出指定的数据然而手工的方式需要耗费大量时间。先开启 Firefox 浏览器并启用 Burp Suite 的代理模式然后开启 Burp Suite 的 HTTP 拦截请求。接下来通过浏览器提交http://127.0.0.1/demo.php?num1的请求Burp Suite 成功抓取到请求数据包如图 6-19 所示。单击“Action”按钮并选择“Send to Intruder”将当前抓取到的数据包发送至 Intruder 模块如图 6-20 所示。单击 Burp Suite 菜单栏中的“Intruder”按钮对同步的数据包进行查看与更改其中Payload Positions位置的请求数据展示如下GET /demo.php?num§1§ HTTP/1.1 Host: 127.0.0.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0 Accept: text/html,application/xhtmlxml,application/xml;q0.9,*/*;q0.8 Accept-Language: zh-CN,zh;q0.8,en-US;q0.5,en;q0.3 Accept-Encoding: gzip, deflate Connection: close Upgrade-Insecure-Requests: 1在 GET 请求中num参数值的两侧已自动添加了§符号作为标记后续将针对该位置进行 Payload 的爆破。如果未添加该符号或在其他位置添加了该符号那么需要先删除其他位置的§符号再在需要检测的位置处添加该符号。单击右侧的“Clear §”按钮清除自动在 HTTP 请求数据包中添加的符号再选中需要检测位置的变量单击右侧的“Add §”按钮添加符号如图 6-21 所示。由于此时仅对num变量进行遍历因此攻击类型选择“Sniper”即可如图 6-22 所示。在Payloads选项卡下配置检测内容。在Payload Sets有效载荷集中可以选择 Payload 类型并快速生成需要的检测内容。本环境是对 0 至 100 的数值进行遍历因此Payload Type选择“Numbers”。之后页面将会出现Payload Options [Numbers]在该选项卡中可以设定数值范围和类型如图 6-23 所示。对于 Payload 的类型可选择“Sequential”顺序的From 处填0To 处填100Step 处填写1。即配置 Payload 为顺序模式设定数值范围从 0 至 100步长为 1。Payload 的配置如图 6-24 所示。配置完成后单击右上角的“Start attack”按钮开始攻击此时 Burp Suite 将会弹出一个新的窗口将会在该窗口中显示检测数据如图 6-25 所示。列表内容中含有请求排序、测试的 Payload、响应状态码、响应数据长度等信息。单击“Length”按钮并排序发现本次攻击检测的响应代码长度有 276 与 265大多数为 276。单击响应长度为 276 的任意一条数据在弹出的 Request 与 Response 数据框中单击Response选项卡下的“Render”按钮页面显示内容依旧为浏览器中出现的提示信息如图 6-26 所示。挑选长度为265的一条数据查看其 Response 选项卡下的 Render 信息如图 6-27 所示。图 6-27 中显示“Success”字段Payload 为66。当num66时可以成功获取目标数据。结合爆破信息在浏览器中发送请求http://127.0.0.1/demo.php?num66页面成功出现“Success”字段如图 6-28 所示。2.5 归纳总结在数据变化范围较小时可以通过手工的方式进行检测。如果数据变化范围较大手工检测不仅会耗费大量的时间和精力而且会降低效率。在明确 Burp Suite 模块功能的情况下可以根据指定的范围进行配置加快检测进度。2.6 提高拓展将demo.php文件的代码内容替换为以下内容meta charsetUTF-8?phpif(isset($_GET[num])){if($_GET[num]base64_encode(66)){echotime(). Success;}else{echonum为数字范围base64_encode(0~100);}}else{echo请用GET请求提交变量num;}?因为对数据进行了 Base64 加密处理所以采用基本的爆破方法已无法获得所需信息。开启 Firefox 浏览器 Burp Suite 的代理模式并打开 Burp Suite 的 HTTP 拦截请求在浏览器中提交访问http://127.0.0.1/demo.php?num1的请求。Burp Suite 抓取到请求数据包后按照前文所述的配置方法将数据发送至 Intruder 模块设定爆破变量num的值攻击类型为“Sniper”如图 6-29 所示。在Payload type中设置有效载荷集为“Numbers”Payload 的类型选择“Sequential”From 处填写0To 处填写100Step 处填写1。即配置 Payload 为顺序模式设定数值范围从 0 至 100步长为 1如图 6-30 所示。此时配置信息同前文检测配置一致。但由于当前的检测需要对输入参数num的值进行Base64 编码因此此时不能直接单击“Start attack”按钮否则传输的数据为基础数字并不会自动进行 Base64 编码。在Payloads选项卡中存在Payload Processing有效载荷处理选项卡如图 6-31 所示在该选项卡中可以增加对爆破数据的处理方式如 MD5 加密、Base64 编码等。单击该功能下的“Add”按钮在第一个下拉框中选择“Encode”在第二个下拉框中选择“Base64-encode”从而添加处理规则如图 6-32 所示单击“OK”按钮保存设置即可。配置完成后单击右上角的“Start attack”按钮。检测完成后根据长度进行排序单击长度为 265 的条目查看Response选项卡下的Render字段其内容如图 6-33 所示含有“Success”字段。此时对应的Payload列中的值为NjY使用 HackBar 对该字段进行 Base64 解码内容为预期设定的66。【附】AI 提示词模板若您需要将上述内容交由 AI 进行进一步加工如生成 Intruder 四种攻击类型对比练习、输出 Payload Processing 处理规则大全、设计 Base64 编码爆破练习题目、制作 Intruder 模块配置速查卡等可使用以下提示词模板提示词模板请根据以下关于Burp Suite Intruder 模块的使用的技术文章内容完成下列任务【角色设定】你是一位资深渗透测试工程师兼 Burp Suite 工具培训讲师。【任务类型】请选择①生成 Intruder 四种攻击类型Sniper/Battering ram/Pitchfork/Cluster bomb的对比与选型指南 ②设计一道基于 Base64 编码爆破的进阶练习题目含靶场源码与 WriteUp ③制作 Payload Processing 常用处理规则编码/加密/哈希/截断功能速查表 ④输出 Intruder 模块从配置到攻击结果分析的全流程图文操作指南 ⑤提炼 Intruder 模块日常测试场景密码爆破/ID 枚举/Fuzz 测试配置模板【输出要求】请填写具体要求如速查表需包含每种处理规则的适用场景和配置示例/练习题目需包含完整的 PHP 源码和解题步骤/操作指南需包含截图占位和验证方法【原文内容】在此处粘贴上述整理后的完整 6.2 章节文章【补充说明】可选如需补充字典文件加载方法Payload Options → Simple list/说明如何设置攻击线程数控制速度/增加 Grep Match 功能用于自动标记成功响应等示例回答针对上述提示词模板的完整回复好的作为资深渗透测试工程师兼 Burp Suite 工具培训讲师我已完成您指定的任务。以下是根据原文内容生成的【Intruder 四种攻击类型对比与选型指南】包含核心原理、适用场景和配置示例便于读者在实际测试中选择最合适的攻击方式Burp Suite Intruder 四种攻击类型对比与选型指南一、四种类型总览对比表对比维度Sniper狙击手Battering ram破城槌Pitchfork音叉Cluster bomb集束炸弹变量数量支持单变量或多变量依次替换多变量共用同一个字典多变量每个变量对应一个字典多变量每个变量对应一个字典字典数量1 个1 个n 个对应 n 个变量n 个对应 n 个变量攻击组合数字典大小 × 变量数依次字典大小所有变量同时替换为同一值字典1大小取各字典对应项以最小字典为准字典1大小 × 字典2大小 × …笛卡尔积复杂度★☆☆☆☆最低★★☆☆☆★★★☆☆★★★★★最高适用场景单一参数爆破如密码枚举、ID 遍历多参数需同时使用相同值时如多处替换为同一 payload多参数使用不同字典且需配对时如账号密码的组合遍历但需一一对应多参数需穷举所有组合时如用户名密码的完全交叉爆破二、各类型详解与配置示例1. Sniper狙击手—— 最常用原理依次对每个标记位置进行替换。如果有 2 个位置A 和 B和 3 个 payload1,2,3则攻击序列为A1, A2, A3, B1, B2, B3共 6 次适用场景原文任务中的num值遍历单变量爆破配置注意适合参数数量少、字典大小适中的情况2. Battering ram破城槌原理所有标记位置同时替换为相同的 payload 值。2 个位置A 和 B 3 个 payload1,2,3→ (1,1)、(2,2)、(3,3)共 3 次适用场景多处需要同时修改为相同值时如 cookie 和参数同时替换注意此模式较少单独使用多用于特定场景3. Pitchfork音叉原理每个位置使用不同的字典按顺序一一对应取用。位置1用字典1位置2用字典2 → (1,3)、(2,4)共 2 次以最短字典为准适用场景已知用户名和密码一一对应关系时如从信息收集获得admin→admin123, user→user123注意攻击次数 最短字典的长度4. Cluster bomb集束炸弹—— 最暴力原理多个字典进行笛卡尔积全排列组合。位置1用字典1位置2用字典2 → (1,3)、(1,4)、(2,3)、(2,4)共 4 次适用场景用户名和密码均未知需要穷举所有组合时登录框爆破注意攻击次数 所有字典大小的乘积可能产生海量请求需注意资源消耗和目标服务器负载三、选型决策流程图开始 → 确定爆破位置数量 ↓ 是否只有一个变量 / \ 是 否多个变量 ↓ ↓ 选择 Sniper 多个变量是否共用同一字典 / \ 是 否 ↓ ↓ 选择 Battering 各字典是否需一一对应配对 ram / \ 是 否需全部组合 ↓ ↓ 选择 Pitchfork 选择 Cluster bomb四、原文案例适用性分析任务场景变量数推荐攻击类型原因遍历 num 值0~1001Sniper单一变量字典为数字序列简单高效Base64 编码版 num 遍历1Sniper仍是单变量仅增加 Payload Processing 编码处理登录框爆破已知用户名列表2user passCluster bomb或 Pitchfork用户名和密码均需遍历Cluster bomb 适合交叉组合多参数相同值替换2Battering ram所有参数需同时替换为相同 payload如需其他格式如练习题目或配置速查卡可再次使用提示词模板指定任务类型。