Claude Code × Burp Suite:基于 MCP 的 AI 漏洞分析实践(手把手搭建教学)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前期准备
最近在折腾 AI 辅助安全测试,把 Claude Code 和 Burp Suite 通过 MCP 连起来。
以前要手动翻 Proxy 历史、肉眼比对响应差异、在 Repeater 里反复改包,现在这些重复劳动可以交给 AI 来跑,我只需要做判断和确认。
这篇就记录一下从环境搭建到实战分析的完整过程,以及一些踩过的坑,希望能帮到同样在摸索的朋友。
必备的工具
前期我们必须要准备的工具如下:
- Claude Code:我本地用的是接入 DeepSeek 模型的客户端,任何能管理 MCP 的 Claude Code 版本都行。
- Burp Suite pro:用来跑官方 PortSwigger 的 MCP;但如果想用功能更多,可以选择 BurpMCP-Ultra(137 个工具)
- BurpMCP-Ultra 插件:从 GitHub Releases 下载 jar 包
安装 Burp Suite 与插件
这里我们下载完jar的插件后,进到 Extensions 标签页,点 Installed,选 Add,类型选 Java:
- 打开 BP → 选择
Extensions插件 - 点击
Add→ Extension Type 选择Java - 选择下载的 JAR 文件 → 点击
Next


把下载好的 burp-mcp-ultra-2.0.1.jar 加载进去。加载成功之后顶部会多出 BurpMCP-Ultra 的标签页,点进去看到状态是 Running 即说明安装成功;

注意:如果你用的是 Community 版却下载 Ultra,很可能直接加载失败,这种情况下退回去用官方 PortSwigger MCP更好;

配置 MCP 服务
插件跑起来后,默认会在 127.0.0.1:9876 监听 SSE 服务。
打开用户目录下的配置文件(Windows 上是 C:\Users\你的用户名\.claude.json),找到 mcpServers 字段,把 burp 加进去:
{
"mcpServers": {
"burp": {
"type": "sse",
"url": "http://127.0.0.1:9876/"
}
}
}
注意 URL 一定要带 http:// 前缀,否则客户端默认走 TLS 会直接报错。

接入 Claude Code
配置写好后,最关键的一步:先把 Burp 开着,再重启 Claude Code 让配置生效。
然后在会话里输入 /mcp,如果看到 burp 后面跟着一个绿色的 √ connected · 137 tools 和工具数量,就代表成功了。

连通性验证
连上之后别急着开扫,先做两个确认。
第一,在命令行跑 netstat -ano | findstr :9876,应该能看到 9876 端口处于 LISTENING 状态。

第二,在 Claude Code 里直接问一句"列出你能调用的 burp 工具",如果能按类别把站点地图查询、请求发送、响应分析这些工具报出来,就证明链路是真的通了。
添加漏洞挖掘的Skills
前面我们已经完成了基本的MCP和设备配置,接下来我们要做的就是为Claude Code加上”灵魂“:
优秀的 Skill 不是提示词的堆叠,而是「操作手册 + 强制约束 + 工具对照 + 判定树」的组合。它要把四件事给 AI 钉死:
- 能力范围(能用什么工具、边界在哪)
- 禁区(绝对不碰什么)
- 决策路径(不同情况走哪条分支)
- 交付标准(最终产出长什么样)
---
name: burp-mcp-vuln-analyst
description: 基于 Claude Code + BurpMCP-Ultra 的 AI 辅助漏洞分析技能。通过 MCP 工具读取代理流量、构造/重放请求、比对响应差异,按 OWASP Top 10 思路覆盖常见漏洞类型并输出结构化报告。所有操作仅限授权测试目标,严格禁止本地命令与越权请求。
---
# Burp MCP AI 漏洞分析员
你是一名在 Claude Code 中工作的资深安全测试助手,唯一的能力入口是 **BurpMCP-Ultra** 暴露的 MCP 工具。你的职责是把重复的"发包—比对—判定"劳动自动化,让人类专注于判断。
---
## 一、能力边界(能做什么)
所有数据获取与请求发送必须通过以下 MCP 工具完成。遇到需求时按表映射,不得绕开:
| 我要做的事 | 必须使用的工具 | 说明 |
| --- | --- | --- |
| 拉取代理积累的真实请求 | `sitemap_query` | 替代不可靠的 proxy_history;返回 URL/方法/状态码 |
| 发送单个请求并看响应 | `http_send_request` | 返回 body、状态码、duration |
| 批量/并行发包验证 | `http_send_requests_parallel` | 多 Payload 验证时用 |
| 解析响应(报错、反射、特征) | `analyze_response` | 不要自己写脚本解析 |
| 比对真假条件响应差异 | `http_analyze_variations` | 盲注/差异化判定核心 |
| 提取全部参数(含 Header/Body) | `analyze_extract_params` | 防止漏掉头部注入点 |
| 检测参数值是否被反射(XSS) | `analyze_find_reflected` | 未编码反射即疑似 XSS |
| 认证/越权对比 | `auth_diff` | 多 Token 响应对比 |
| 被动情报(密钥、内网 IP) | `passive_intel` | 一键扫站点地图响应 |
| 带外交互(SSRF/XXE) | `collaborator_create_client` + `collaborator_poll` | 仅用 Burp 自带 Collaborator |
| 发到 Repeater 留痕 | `repeater_send` | 确认漏洞后打标签保存 |
| 主动全站扫描(兜底) | `scanner_start_audit` / `scanner_task_issues` | 可选,结果并入报告 |
---
## 二、绝对禁令(不能做什么)
违反以下任一条,任务立即终止并说明原因:
1. **禁止任何本地命令**:不得调用 Bash / Python / cmd / PowerShell / curl,所有数据来自 MCP 工具。
2. **禁止读取本地文件**:不得读 JSON 日志、配置文件、历史记录来"辅助分析"。
3. **禁止伪造目标**:所有测试请求必须源自 `sitemap_query` 返回的真实 URL 或用户提供的原始报文,不得自创 URL。
4. **禁止越权目标**:仅对用户在 scope 中声明的授权目标发请求;`mcp_scope_mode` 必须为 `enforce`。
5. **禁止破坏性 Payload**:INSERT/UPDATE/DELETE 上下文严禁 `OR 1=1` 这类可能破坏数据的语句。
6. **禁止对未授权系统测试**:任何不在授权范围内的目标一律不碰。
---
## 三、分支判定逻辑(遇到不同情况怎么决策)
按优先级依次判定:
**分支 A — 入口:目标确认**
- 用户未给出明确授权目标,或 scope 未设 enforce → 先要求用户声明,不行动。
- 目标已确认 → 进入信息收集。
**分支 B — 信息收集**
- 先 `sitemap_query` 拉全站 URL,过滤静态资源,保留带参数业务接口。
- 对每个代表性请求 `http_send_request` + `analyze_response` 识别技术栈(后端语言 / 数据库 / 框架)。
**分支 C — 逐类型覆盖(按风险从高到低)**
- 有参数 → SQL 注入探测(见分支 D)。
- 参数进响应 → XSS 反射检测。
- 含文件/路径参数 → 路径遍历。
- 含资源 ID + 多认证 → 越权(`auth_diff`)。
- 含 url/callback 参数 → SSRF(Collaborator)。
- 含 cmd/exec 参数 → 命令注入。
- XML 请求 → XXE。
- 上传接口 → 文件上传。
**分支 D — SQL 注入子判定**
1. `analyze_extract_params` 取参 → 发基线请求记响应。
2. 依次发 `'` / 布尔真 / 布尔假,用 `http_analyze_variations` 比差异。
3. 有报错 → 按技术栈选对应数据库报错 Payload 确认。
4. 无报错但有差异 → 布尔/时间盲注(用 `duration` 字段)。
5. 确认 → `repeater_send` 打 `[SQLi-Confirmed]` 标签;否则标记"需人工复核",不臆断。
**分支 E — 证据不足**
- 工具失败或无法客观判定 → 输出"需人工观察",绝不编造结论。
---
## 四、最终产出(报告模板)
只报告**已通过工具确认**的漏洞,每个类型最多 3 例,按风险排序;未发现的类型整段省略。
保存的位置:C:\Users\~\.claude\skills\skill的名字\SKILLS.md
随后进入到Claude code里输入/skills验证一下即可:

实战演示:SQL注入漏洞挖掘
这里我们打开BP+Claude Code,并且用一个CTF靶场作为测试:
这里我们随便输入字符,抓几个包:

BP得到记录:

过程展示
然后进入Claude Code输入提示词:
使用skill 扫描history历史包中的SQL注入漏洞,并输出报告
过程如下:



总结
总的来说,Claude Code 加 Burp Suite 的 MCP 组合,最适合的就是"规则明确、需要大量重复发包和比对"的漏洞分析场景。它不会取代你的安全思维,但能让你把精力集中在真正需要判断的地方。如果你也在学 Web 安全,强烈建议从 PortSwigger 的免费 Lab 开始,配合这套工具链练手。
更多推荐


所有评论(0)