reverse-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
@@ -0,0 +1,769 @@
|
||||
# BurpSuite MCP 完整使用指南
|
||||
|
||||
> 来源:PortSwigger 官方文档 + TrustedSec + InfoSec Write-ups(2026-05-24)
|
||||
> 适用场景:Web 渗透测试中需要 AI 辅助分析流量、自动化攻击、生成报告
|
||||
|
||||
## 概述
|
||||
|
||||
BurpSuite MCP 将 Burp Suite 的所有核心功能暴露给 AI 客户端(Kiro/Claude/Cursor),实现:
|
||||
- AI 自动读取代理历史,分析请求中的漏洞
|
||||
- AI 自动构造攻击 payload 并通过 Intruder 枚举
|
||||
- AI 自动将可疑请求发到 Repeater 验证
|
||||
- AI 自动生成渗透测试报告
|
||||
|
||||
## 安装
|
||||
|
||||
### 前置条件
|
||||
- BurpSuite Professional(社区版功能受限)
|
||||
- 下载地址:https://www.52pojie.cn/thread-2005151-1-1.html (汉化一键启动版)
|
||||
|
||||
### 安装 MCP 扩展
|
||||
|
||||
**方法 A:使用本项目自带扩展(推荐,78 个工具全覆盖)**
|
||||
|
||||
Windows:
|
||||
```
|
||||
1. 打开 Burp Suite Pro
|
||||
2. Extensions → Installed → Add
|
||||
3. Extension Type: Java
|
||||
4. Select file: <SKILL_ROOT>\burp-mcp-full\build\libs\burp-mcp-full.jar
|
||||
5. 看到 [MCP] Server started on http://127.0.0.1:9876 即成功
|
||||
```
|
||||
|
||||
Linux / Kali / macOS:
|
||||
```
|
||||
1. 先编译: cd <SKILL_ROOT>/burp-mcp-full && chmod +x build.sh && ./build.sh
|
||||
2. 打开 Burp Suite Pro
|
||||
3. Extensions → Installed → Add → Java
|
||||
4. Select: <SKILL_ROOT>/burp-mcp-full/build/libs/burp-mcp-full.jar
|
||||
5. 看到 [MCP] Server started 即成功
|
||||
```
|
||||
|
||||
**方法 B:使用 PortSwigger 官方扩展(21 个工具)**
|
||||
```
|
||||
1. Extensions → BApp Store → 搜索 "MCP Server" → Install
|
||||
2. 去 MCP tab → Enable
|
||||
3. 端口默认 9876
|
||||
```
|
||||
|
||||
### Kiro MCP 配置(已自动写入用户级别)
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"burpsuite": {
|
||||
"command": "node",
|
||||
"args": ["D:\\reverse-skill-private-main\\burp-mcp-full\\mcp-bridge.js"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
适用于所有 MCP 客户端(Kiro / Claude Code / Cursor / Cline / Windsurf)。
|
||||
|
||||
### 跨平台 MCP 配置
|
||||
|
||||
**Windows**:
|
||||
```json
|
||||
{ "command": "node", "args": ["<SKILL_ROOT>\\burp-mcp-full\\mcp-bridge.js"] }
|
||||
```
|
||||
|
||||
**Linux / Kali / macOS**:
|
||||
```json
|
||||
{ "command": "node", "args": ["<SKILL_ROOT>/burp-mcp-full/mcp-bridge.js"] }
|
||||
```
|
||||
|
||||
> `<SKILL_ROOT>` 替换为本包的实际安装路径。AI 读取 RULES.md 时会自动检测并替换。
|
||||
|
||||
### 环境变量(可选)
|
||||
|
||||
| 变量 | 默认值 | 说明 |
|
||||
|------|--------|------|
|
||||
| `BURP_MCP_HOST` | `127.0.0.1` | Burp HTTP API 地址 |
|
||||
| `BURP_MCP_PORT` | `9876` | Burp HTTP API 端口 |
|
||||
|
||||
如果 Burp 跑在远程机器或不同端口,设置这两个环境变量即可。
|
||||
|
||||
### 重要:协议说明
|
||||
|
||||
本扩展通过 **stdio MCP 桥接器**(`mcp-bridge.js`)实现标准 MCP JSON-RPC 2.0 协议:
|
||||
- Burp 扩展监听 `127.0.0.1:9876`(自定义 HTTP API)
|
||||
- `mcp-bridge.js` 将标准 MCP stdio 协议转发到 HTTP API
|
||||
- 所有 MCP 客户端通过 stdio 与桥接器通信
|
||||
|
||||
**前提**:Burp Suite 必须在运行且扩展已加载。
|
||||
|
||||
**健康检查**:`GET http://127.0.0.1:9876/health`
|
||||
**工具列表**:`GET http://127.0.0.1:9876/tools`
|
||||
|
||||
## 使用场景与工作流
|
||||
|
||||
### 场景 1:AI 辅助流量分析(最常用)
|
||||
|
||||
**何时使用**:浏览器挂 Burp 代理浏览目标网站后,让 AI 分析所有捕获的流量
|
||||
|
||||
**工作流**:
|
||||
```
|
||||
1. 浏览器设置 Burp 代理 (127.0.0.1:8080)
|
||||
2. 正常浏览目标网站(登录、操作功能)
|
||||
3. 告诉 AI:"分析 Burp 代理历史中的所有请求,找出安全问题"
|
||||
4. AI 调用 proxy_history → 获取所有请求
|
||||
5. AI 调用 proxy_detail → 查看可疑请求的完整内容
|
||||
6. AI 调用 search_history → 用正则搜索敏感信息
|
||||
7. AI 输出发现的漏洞列表
|
||||
```
|
||||
|
||||
**示例 Prompt**:
|
||||
```
|
||||
分析我 Burp 代理历史中 personalblog.fun 的所有请求。
|
||||
按 OWASP Top 10 分类,找出潜在漏洞。
|
||||
对可疑端点,发到 Repeater 让我手动验证。
|
||||
```
|
||||
|
||||
### 场景 2:自动化枚举攻击(Intruder)
|
||||
|
||||
**何时使用**:需要对参数做暴力枚举(验证码、ID、路径等)
|
||||
|
||||
**工作流**:
|
||||
```
|
||||
1. AI 调用 intruder_attack_async → 多线程数字范围枚举
|
||||
2. 或 intruder_attack_wordlist → 字典攻击
|
||||
3. 或 intruder_cluster_bomb → 多参数笛卡尔积
|
||||
4. 通过 success_length_not 参数自动识别成功响应
|
||||
5. AI 报告命中结果
|
||||
```
|
||||
|
||||
**示例调用**:
|
||||
```json
|
||||
{
|
||||
"tool": "intruder_attack_async",
|
||||
"params": {
|
||||
"url_template": "https://target.com/api/verify?code=@@",
|
||||
"method": "POST",
|
||||
"from": 0,
|
||||
"to": 999999,
|
||||
"pad_digits": 6,
|
||||
"threads": 50,
|
||||
"success_length_not": 176
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 场景 3:OOB 漏洞检测(Collaborator)
|
||||
|
||||
**何时使用**:测试 SSRF、XXE、盲注等需要外带数据的漏洞
|
||||
|
||||
**工作流**:
|
||||
```
|
||||
1. AI 调用 collaborator_generate → 生成 payload
|
||||
2. AI 将 payload 注入到请求中发送
|
||||
3. 等待几秒
|
||||
4. AI 调用 collaborator_poll → 检查是否有回连
|
||||
5. 有回连 = 漏洞确认
|
||||
```
|
||||
|
||||
### 场景 4:请求修改与重放(Repeater)
|
||||
|
||||
**何时使用**:需要修改请求参数验证漏洞
|
||||
|
||||
**工作流**:
|
||||
```
|
||||
1. AI 调用 proxy_detail → 获取原始请求
|
||||
2. AI 调用 repeater_modify_send → 修改 header/body 后重发
|
||||
3. 分析响应差异
|
||||
4. 确认漏洞
|
||||
```
|
||||
|
||||
### 场景 5:自动化 DAST 扫描
|
||||
|
||||
**何时使用**:对目标做全面漏洞扫描
|
||||
|
||||
**工作流**:
|
||||
```
|
||||
1. AI 调用 add_to_scope → 添加目标到范围
|
||||
2. AI 调用 crawl → 触发爬虫
|
||||
3. 等待扫描完成
|
||||
4. AI 调用 scan_results → 获取发现的漏洞
|
||||
5. AI 调用 scan_issue_detail → 获取漏洞详情
|
||||
6. AI 生成报告
|
||||
```
|
||||
|
||||
### 场景 6:流量自动修改(HTTP Handler)
|
||||
|
||||
**何时使用**:需要自动给所有请求加 header、替换内容
|
||||
|
||||
**工作流**:
|
||||
```
|
||||
1. AI 调用 register_http_handler → 注册自动修改规则
|
||||
- 自动添加认证 header
|
||||
- 自动替换请求中的某些值
|
||||
2. 所有经过 Burp 的请求自动被修改
|
||||
3. 完成后调用 remove_http_handler 清除规则
|
||||
```
|
||||
|
||||
### 场景 7:Cookie/Session 分析
|
||||
|
||||
**何时使用**:分析 session token 的随机性和安全性
|
||||
|
||||
**工作流**:
|
||||
```
|
||||
1. AI 调用 cookie_jar → 获取所有 cookie
|
||||
2. AI 调用 token_analysis → 分析 token 熵值
|
||||
3. AI 调用 sequencer → 批量分析 token 随机性
|
||||
4. 判断 session 是否可预测
|
||||
```
|
||||
|
||||
## 完整工具列表(78 个)
|
||||
|
||||
### Proxy 模块
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `proxy_history` | limit, offset, url_filter, method_filter, status_filter | 获取代理历史 |
|
||||
| `proxy_detail` | index | 获取指定条目完整请求/响应 |
|
||||
| `proxy_websocket` | limit | WebSocket 消息历史 |
|
||||
| `proxy_history_filtered` | has_notes, color, limit | 按注解/颜色过滤 |
|
||||
| `proxy_clear` | — | 清空历史 |
|
||||
|
||||
### HTTP 请求
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `send_request` | method, url, body, headers | 通过 Burp 发请求 |
|
||||
| `repeater_send` | request, host, port, https | 发送并获取响应 |
|
||||
| `repeater_modify_send` | request, host, replace_header, add_header, replace_body | 修改后重发 |
|
||||
| `send_to_repeater` | request, tab_name | 发到 Repeater tab |
|
||||
|
||||
### Intruder 攻击
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `send_to_intruder` | request | 发到 Intruder |
|
||||
| `intruder_attack` | url_template, from, to, pad_digits, method, success_length_not | 数字枚举(同步) |
|
||||
| `intruder_attack_async` | 同上 + threads | 多线程并发枚举 |
|
||||
| `intruder_attack_wordlist` | url_template, wordlist, method | 字典攻击 |
|
||||
| `intruder_pitchfork` | url_template, placeholders, method | 多参数并行 |
|
||||
| `intruder_cluster_bomb` | url_template, placeholders, max_requests | 笛卡尔积 |
|
||||
| `intruder_battering_ram` | url_template, wordlist, placeholder | 同 payload 填所有位置 |
|
||||
| `intruder_with_options` | 同上 + throttle_ms, payload_encoding, grep_extract, record_time | 高级选项 |
|
||||
|
||||
### Scanner
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `scan` | url | 扫描引导 |
|
||||
| `scan_active` | request, host, port | 主动扫描指定请求 |
|
||||
| `scan_results` | limit | 获取漏洞列表 |
|
||||
| `scan_issue_detail` | index | 漏洞详情 |
|
||||
| `crawl` | url | 爬虫 |
|
||||
|
||||
### Scope
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `get_scope` | url | 查询是否在范围内 |
|
||||
| `add_to_scope` | url | 添加 |
|
||||
| `remove_from_scope` | url | 移除 |
|
||||
|
||||
### Collaborator
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `collaborator_generate` | count | 生成 OOB payload |
|
||||
| `collaborator_poll` | — | 轮询交互 |
|
||||
|
||||
### 编码/工具
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `encode` | input, type(base64/url/hex) | 编码 |
|
||||
| `decode` | input, type | 解码 |
|
||||
| `payload_process` | input, operation | 高级处理(md5/sha1/sha256/reverse等) |
|
||||
| `convert_request` | request, convert_to | 转换请求方法 |
|
||||
| `export_request` | request, host, format(curl/python) | 导出为代码 |
|
||||
| `generate_csrf_poc` | request, host | 生成 CSRF PoC |
|
||||
| `extract_from_response` | index, regex | 正则提取响应内容 |
|
||||
|
||||
### 搜索/标注
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `search_history` | regex, search_in(url/request/response), limit | 正则搜索 |
|
||||
| `highlight` | index, color | 颜色标记 |
|
||||
| `annotate` | index, note | 添加注释 |
|
||||
| `compare` | index1, index2 | 响应对比 |
|
||||
|
||||
### 配置
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `export_config` | — | 导出项目配置 |
|
||||
| `import_config` | config | 导入配置 |
|
||||
| `set_upstream_proxy` | proxy_host, proxy_port, type | 设置上游代理 |
|
||||
| `set_dns_override` | hostname, ip | DNS 覆盖 |
|
||||
| `set_http2` | enable | HTTP/2 开关 |
|
||||
|
||||
### Handler(自动修改)
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `register_http_handler` | header_name, header_value 或 match, replace | 注册自动修改规则 |
|
||||
| `remove_http_handler` | — | 清除规则 |
|
||||
| `register_proxy_rule` | url_contains | 注册拦截规则 |
|
||||
| `remove_proxy_rule` | — | 清除规则 |
|
||||
|
||||
### 分析
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `cookie_jar` | limit, domain | Cookie 管理 |
|
||||
| `token_analysis` | tokens(array) | Token 熵值分析 |
|
||||
| `sequencer` | tokens(array) | 序列随机性分析 |
|
||||
| `target_info` | url | 目标技术栈识别 |
|
||||
|
||||
### 系统
|
||||
| 工具 | 参数 | 说明 |
|
||||
|------|------|------|
|
||||
| `burp_version` | — | Burp 版本信息 |
|
||||
| `add_issue` | name, url, detail, severity | 手动添加漏洞 |
|
||||
| `extensions_list` | — | 扩展信息 |
|
||||
| `save_project` | — | 保存项目 |
|
||||
| `log` | message, level | 写日志 |
|
||||
|
||||
## AI 渗透测试最佳实践 Prompt
|
||||
|
||||
### 全面分析 Prompt
|
||||
```
|
||||
你是一名高级渗透测试工程师。请分析 Burp 代理历史中的所有请求:
|
||||
1. 按 OWASP Top 10 分类潜在漏洞
|
||||
2. 对每个发现给出风险等级和利用方法
|
||||
3. 将高风险请求发到 Repeater
|
||||
4. 不要发送破坏性请求
|
||||
5. 生成结构化报告
|
||||
```
|
||||
|
||||
### 定向攻击 Prompt
|
||||
```
|
||||
目标:https://target.com/api/
|
||||
1. 搜索代理历史中所有 API 端点
|
||||
2. 识别认证/授权问题
|
||||
3. 测试 IDOR(修改 ID 参数)
|
||||
4. 测试 Mass Assignment(添加额外字段)
|
||||
5. 报告所有发现
|
||||
```
|
||||
|
||||
### 验证码爆破 Prompt
|
||||
```
|
||||
使用 intruder_attack_async 对以下端点进行 6 位数字验证码枚举:
|
||||
URL: https://target.com/api/verify?code=@@
|
||||
方法: POST
|
||||
范围: 000000-999999
|
||||
线程: 50
|
||||
成功判断: 响应长度不等于 176
|
||||
```
|
||||
|
||||
## 与技能路由的集成
|
||||
|
||||
### 触发条件
|
||||
当用户提到以下关键词时,自动使用 BurpSuite MCP:
|
||||
- "Burp 分析"、"代理历史"、"抓包分析"
|
||||
- "Intruder 爆破"、"枚举攻击"
|
||||
- "Repeater 重放"、"修改请求"
|
||||
- "Collaborator"、"OOB 测试"
|
||||
- "DAST 扫描"、"主动扫描"
|
||||
|
||||
### 前置检查
|
||||
1. 确认 Burp 是否在运行:`GET http://127.0.0.1:9876/health`
|
||||
2. 如果不在线 → 提示用户启动 Burp
|
||||
3. 如果未安装 → 提供下载链接和安装步骤
|
||||
|
||||
### 与其他 skill 的配合
|
||||
- `js-reverse` 发现加密逻辑 → Burp MCP 发送解密后的请求
|
||||
- `pentest-tools` Nmap 发现 Web 服务 → Burp MCP 做深度测试
|
||||
- `browser-automation` 自动化浏览 → Burp 捕获流量 → AI 分析
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 实战案例集(12 个场景)
|
||||
|
||||
### 案例 1:IDOR 漏洞自动发现
|
||||
|
||||
**场景**:目标网站有用户资料接口 `/api/user/123`,怀疑存在越权
|
||||
|
||||
**AI 操作流程**:
|
||||
```
|
||||
1. proxy_history → 过滤包含 /api/user/ 的请求
|
||||
2. proxy_detail → 获取原始请求
|
||||
3. repeater_modify_send → 修改 ID 参数(123→124→125)
|
||||
4. compare → 对比不同 ID 的响应
|
||||
5. 如果能看到其他用户数据 → 确认 IDOR
|
||||
```
|
||||
|
||||
**Prompt 示例**:
|
||||
```
|
||||
从 Burp 代理历史中找到所有包含用户 ID 的 API 请求。
|
||||
逐个修改 ID 参数(+1, -1, 0, 99999),对比响应。
|
||||
如果能获取其他用户数据,标记为 IDOR 漏洞。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 案例 2:JWT Token 安全分析
|
||||
|
||||
**场景**:目标使用 JWT 认证,需要分析 token 安全性
|
||||
|
||||
**AI 操作流程**:
|
||||
```
|
||||
1. search_history → 搜索 "Authorization: Bearer" 或 "token"
|
||||
2. extract_from_response → 提取所有 JWT token
|
||||
3. decode → Base64 解码 JWT header 和 payload
|
||||
4. token_analysis → 分析 token 熵值
|
||||
5. 检查算法(none/HS256 弱密钥/RS256→HS256 混淆)
|
||||
```
|
||||
|
||||
**Prompt 示例**:
|
||||
```
|
||||
搜索代理历史中所有 JWT token。
|
||||
解码分析:算法是否安全?是否有敏感信息泄露?
|
||||
尝试 none 算法绕过和弱密钥爆破。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 案例 3:API 端点全面发现与测试
|
||||
|
||||
**场景**:黑盒测试一个 SPA 应用,需要发现所有 API 端点
|
||||
|
||||
**AI 操作流程**:
|
||||
```
|
||||
1. 用户浏览器挂 Burp 代理正常使用网站
|
||||
2. proxy_history → 获取所有请求
|
||||
3. search_history → 正则提取 /api/ 开头的路径
|
||||
4. 对每个端点:
|
||||
- send_request → 测试未授权访问
|
||||
- repeater_modify_send → 修改 HTTP 方法(GET→PUT/DELETE)
|
||||
- intruder_attack_wordlist → 参数模糊测试
|
||||
5. 汇总所有发现
|
||||
```
|
||||
|
||||
**Prompt 示例**:
|
||||
```
|
||||
分析 Burp 代理历史,提取所有 API 端点。
|
||||
对每个端点测试:
|
||||
1. 去掉认证 header 看是否能访问(未授权)
|
||||
2. 换 HTTP 方法(GET→POST→PUT→DELETE)
|
||||
3. 添加 admin=true / role=admin 参数
|
||||
报告所有异常响应。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 案例 4:SSRF 漏洞检测(配合 Collaborator)
|
||||
|
||||
**场景**:目标有 URL 参数(如头像上传、webhook 配置),怀疑 SSRF
|
||||
|
||||
**AI 操作流程**:
|
||||
```
|
||||
1. collaborator_generate → 生成 5 个 OOB payload
|
||||
2. search_history → 找到包含 URL 参数的请求
|
||||
3. repeater_modify_send → 将 URL 参数替换为 Collaborator payload
|
||||
4. 等待 10 秒
|
||||
5. collaborator_poll → 检查是否有 DNS/HTTP 回连
|
||||
6. 有回连 = SSRF 确认
|
||||
```
|
||||
|
||||
**Prompt 示例**:
|
||||
```
|
||||
生成 Collaborator payload。
|
||||
找到代理历史中所有包含 url=、redirect=、callback=、webhook= 参数的请求。
|
||||
逐个替换为 Collaborator payload 并发送。
|
||||
10 秒后检查是否有回连。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 案例 5:SQL 注入检测
|
||||
|
||||
**场景**:目标有搜索/过滤功能,怀疑 SQL 注入
|
||||
|
||||
**AI 操作流程**:
|
||||
```
|
||||
1. search_history → 找到带参数的 GET/POST 请求
|
||||
2. intruder_attack_wordlist → 用 SQLi payload 列表测试
|
||||
wordlist: ["'", "' OR '1'='1", "1 UNION SELECT NULL--", "' AND SLEEP(5)--"]
|
||||
3. 对比响应长度和时间
|
||||
4. 时间盲注:intruder_with_options → record_time=true
|
||||
5. 响应时间 >5s 的 = 可能存在时间盲注
|
||||
```
|
||||
|
||||
**Prompt 示例**:
|
||||
```
|
||||
找到代理历史中所有带查询参数的请求。
|
||||
对每个参数用以下 payload 测试 SQL 注入:
|
||||
- 单引号报错
|
||||
- OR 1=1 布尔盲注
|
||||
- SLEEP(5) 时间盲注
|
||||
- UNION SELECT 联合查询
|
||||
记录响应时间,超过 5 秒的标记为疑似时间盲注。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 案例 6:XSS 漏洞检测与验证
|
||||
|
||||
**场景**:目标有用户输入点(搜索框、评论、个人资料),测试 XSS
|
||||
|
||||
**AI 操作流程**:
|
||||
```
|
||||
1. search_history → 找到所有 POST 请求(表单提交)
|
||||
2. intruder_attack_wordlist → 用 XSS payload 列表
|
||||
wordlist: ["<script>alert(1)</script>", "<img src=x onerror=alert(1)>", "{{7*7}}"]
|
||||
3. extract_from_response → 检查 payload 是否在响应中原样反射
|
||||
4. 如果反射 → 确认反射型 XSS
|
||||
5. 再次访问页面检查是否持久化 → 存储型 XSS
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 案例 7:认证绕过测试
|
||||
|
||||
**场景**:目标有管理后台,测试认证是否可绕过
|
||||
|
||||
**AI 操作流程**:
|
||||
```
|
||||
1. proxy_history → 找到管理端 API 请求
|
||||
2. repeater_modify_send → 去掉 Cookie/Token header 重发
|
||||
3. repeater_modify_send → 用普通用户 token 替换管理员 token
|
||||
4. repeater_modify_send → 添加 X-Forwarded-For: 127.0.0.1
|
||||
5. convert_request → 改 HTTP 方法绕过
|
||||
6. 对比响应:如果返回 200 而非 401/403 → 认证绕过
|
||||
```
|
||||
|
||||
**Prompt 示例**:
|
||||
```
|
||||
找到代理历史中所有返回 403 的管理端请求。
|
||||
对每个请求尝试以下绕过:
|
||||
1. 去掉认证 header
|
||||
2. 添加 X-Forwarded-For: 127.0.0.1
|
||||
3. 添加 X-Original-URL 或 X-Rewrite-URL
|
||||
4. 改 HTTP 方法(GET→POST, POST→PUT)
|
||||
5. 路径大小写变换(/Admin → /admin → /ADMIN)
|
||||
6. 路径添加 ..;/ 或 %2e%2e/
|
||||
报告所有返回非 403 的尝试。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 案例 8:文件上传漏洞测试
|
||||
|
||||
**场景**:目标有文件上传功能,测试是否可上传 WebShell
|
||||
|
||||
**AI 操作流程**:
|
||||
```
|
||||
1. search_history → 找到文件上传请求(multipart/form-data)
|
||||
2. proxy_detail → 获取原始上传请求
|
||||
3. repeater_modify_send → 修改文件名和 Content-Type:
|
||||
- test.php / test.jsp / test.aspx
|
||||
- Content-Type: image/png(绕过 MIME 检查)
|
||||
- 双扩展名:test.php.jpg
|
||||
- 空字节:test.php%00.jpg
|
||||
4. 检查响应中是否返回上传路径
|
||||
5. send_request → 访问上传路径验证是否执行
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 案例 9:Mass Assignment 自动检测
|
||||
|
||||
**场景**:目标使用 REST API,测试是否存在批量赋值漏洞
|
||||
|
||||
**AI 操作流程**:
|
||||
```
|
||||
1. search_history → 找到所有 PUT/PATCH 请求
|
||||
2. proxy_detail → 获取请求 body 结构
|
||||
3. repeater_modify_send → 在 body 中添加额外字段:
|
||||
- "role": "admin"
|
||||
- "isAdmin": true
|
||||
- "price": 0
|
||||
- "verified": true
|
||||
4. send_request → GET 用户信息验证字段是否被修改
|
||||
```
|
||||
|
||||
**Prompt 示例**:
|
||||
```
|
||||
找到代理历史中所有 PUT/PATCH 请求。
|
||||
对每个请求的 JSON body 添加以下字段后重发:
|
||||
- role: admin
|
||||
- isAdmin: true
|
||||
- status: active
|
||||
- balance: 99999
|
||||
然后 GET 对应资源检查字段是否被修改。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 案例 10:验证码/OTP 暴力破解
|
||||
|
||||
**场景**:目标有验证码验证接口,测试是否有速率限制
|
||||
|
||||
**AI 操作流程**:
|
||||
```
|
||||
1. search_history → 找到验证码验证请求
|
||||
2. intruder_attack_async → 多线程枚举
|
||||
- url_template: https://target.com/api/verify?code=@@
|
||||
- from: 0, to: 999999, pad_digits: 6
|
||||
- threads: 50
|
||||
- success_length_not: <失败响应长度>
|
||||
3. 如果没有被限速 → 漏洞确认
|
||||
4. 如果命中 → 获取有效验证码
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 案例 11:CORS 配置错误利用
|
||||
|
||||
**场景**:测试目标的 CORS 配置是否允许任意来源
|
||||
|
||||
**AI 操作流程**:
|
||||
```
|
||||
1. proxy_detail → 获取一个认证后的 API 请求
|
||||
2. repeater_modify_send → 添加 Origin: https://evil.com
|
||||
3. extract_from_response → 检查 Access-Control-Allow-Origin
|
||||
4. 如果返回 evil.com 或 * → CORS 配置错误
|
||||
5. generate_csrf_poc → 生成利用 PoC
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 案例 12:完整渗透测试自动化流程
|
||||
|
||||
**场景**:对一个新目标做完整的 Web 渗透测试
|
||||
|
||||
**AI 完整操作流程**:
|
||||
```
|
||||
Phase 1: 信息收集
|
||||
1. add_to_scope → 添加目标
|
||||
2. crawl → 爬取站点
|
||||
3. proxy_history → 获取所有发现的页面
|
||||
4. target_info → 识别技术栈
|
||||
5. search_history → 提取所有 API 端点
|
||||
|
||||
Phase 2: 漏洞扫描
|
||||
6. scan_active → 对关键请求做主动扫描
|
||||
7. scan_results → 获取自动发现的漏洞
|
||||
8. 对每个端点做手动测试(SQLi/XSS/IDOR/SSRF)
|
||||
|
||||
Phase 3: 漏洞利用
|
||||
9. intruder_attack → 对确认的漏洞做深度利用
|
||||
10. collaborator_generate + collaborator_poll → OOB 验证
|
||||
11. repeater_modify_send → 手动验证和 PoC 构造
|
||||
|
||||
Phase 4: 报告
|
||||
12. scan_results + proxy_history → 汇总所有发现
|
||||
13. export_request → 导出关键请求为 curl 命令
|
||||
14. generate_csrf_poc → 生成 PoC
|
||||
15. AI 生成完整渗透测试报告
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 与其他 Skill 的联动场景
|
||||
|
||||
### JS 逆向 + Burp MCP
|
||||
```
|
||||
场景:前端 JS 加密了请求参数
|
||||
1. js-reverse skill → 分析加密逻辑,提取密钥
|
||||
2. register_http_handler → 注册自动解密/加密规则
|
||||
3. 之后所有经过 Burp 的请求自动被处理
|
||||
4. Intruder/Repeater 可以直接操作明文参数
|
||||
```
|
||||
|
||||
### APK 逆向 + Burp MCP
|
||||
```
|
||||
场景:Android APP 的 API 需要签名
|
||||
1. apk-reverse skill → 逆向签名算法
|
||||
2. register_http_handler → 注册自动签名规则
|
||||
3. 所有请求自动带正确签名
|
||||
4. 可以自由修改参数做测试
|
||||
```
|
||||
|
||||
### 浏览器自动化 + Burp MCP
|
||||
```
|
||||
场景:需要自动化浏览网站同时分析流量
|
||||
1. browser-automation skill → Playwright 自动浏览
|
||||
2. 浏览器设置 Burp 代理
|
||||
3. 自动化完成后 → proxy_history 获取所有流量
|
||||
4. AI 分析所有请求找漏洞
|
||||
```
|
||||
|
||||
### IDA 逆向 + Burp MCP
|
||||
```
|
||||
场景:分析一个 Web 应用的后端二进制
|
||||
1. 通过 Burp 抓到 API 请求格式
|
||||
2. ida-reverse skill → 逆向后端处理逻辑
|
||||
3. 发现内存溢出/逻辑漏洞
|
||||
4. 回到 Burp → 构造利用 payload
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 用户未安装 BurpSuite 时的引导
|
||||
|
||||
当 AI 检测到 `http://127.0.0.1:9876/health` 无响应时,输出以下引导:
|
||||
|
||||
```markdown
|
||||
⚠️ **BurpSuite MCP 服务不可用**
|
||||
|
||||
**下载安装 BurpSuite Pro**:
|
||||
- Windows(汉化一键启动版):https://www.52pojie.cn/thread-2005151-1-1.html
|
||||
- Linux / Kali:`sudo apt install burpsuite` 或从 https://portswigger.net/burp/releases 下载 .jar
|
||||
- macOS:从 https://portswigger.net/burp/releases 下载 .dmg
|
||||
|
||||
**安装步骤(Windows)**:
|
||||
1. 下载解压到任意目录(路径不要有中文)
|
||||
2. 双击 `Burp Suite_CN.bat` 启动
|
||||
3. 按提示完成激活
|
||||
|
||||
**安装步骤(Linux/Kali)**:
|
||||
1. `java -jar burpsuite_pro.jar` 启动
|
||||
2. 或使用 Kali 预装版:Applications → Web Application Analysis → Burp Suite
|
||||
|
||||
**加载 MCP 扩展**:
|
||||
1. 编译(仅首次):
|
||||
- Windows: 双击 `<SKILL_ROOT>\burp-mcp-full\build.bat`
|
||||
- Linux/macOS: `cd <SKILL_ROOT>/burp-mcp-full && chmod +x build.sh && ./build.sh`
|
||||
2. 打开 Burp → Extensions → Installed → Add
|
||||
3. Extension Type: Java
|
||||
4. Select file: `<SKILL_ROOT>/burp-mcp-full/build/libs/burp-mcp-full.jar`
|
||||
5. 看到 `[MCP] Server started on http://127.0.0.1:9876` 即成功
|
||||
|
||||
**配置 MCP 客户端**:
|
||||
在你的 AI 客户端 MCP 配置中添加:
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"burpsuite": {
|
||||
"command": "node",
|
||||
"args": ["<SKILL_ROOT>/burp-mcp-full/mcp-bridge.js"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
> 将 `<SKILL_ROOT>` 替换为本包实际路径。Windows 用 `\\`,Linux/macOS 用 `/`。
|
||||
|
||||
**验证**:
|
||||
```bash
|
||||
curl http://127.0.0.1:9876/health
|
||||
# 应返回 {"status":"ok","version":"2.0.0","tools":[...]}
|
||||
```
|
||||
|
||||
**安装完成后告诉我,我继续当前任务。**
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: 端口 9876 被占用怎么办?
|
||||
修改 `BurpMcpExtension.java` 中的端口号,重新编译。或关闭占用端口的程序。
|
||||
|
||||
### Q: 扩展加载失败?
|
||||
确认 Burp 使用的 Java 版本 ≥ 21。本扩展用 JDK 21 编译。
|
||||
|
||||
### Q: 响应是加密的怎么办?
|
||||
用 `extract_from_response` + 外部解密脚本处理。或在 `register_http_handler` 中注册自动解密规则。
|
||||
|
||||
### Q: Intruder 攻击太慢?
|
||||
使用 `intruder_attack_async` 并设置 `threads: 100+`。注意不要打崩目标。
|
||||
|
||||
### Q: 如何配合代理池使用?
|
||||
调用 `set_upstream_proxy` 设置上游代理为 ProxyCat 的端口,实现 IP 轮换。
|
||||
Reference in New Issue
Block a user