Burp Suite + Claude + MCP:构建AI辅助漏洞挖掘工作流

📅 发布时间:2026/9/3 4:02:35
Burp Suite + Claude + MCP:构建AI辅助漏洞挖掘工作流 这次我们来看一个把 Burp Suite 交给 Claude 当“分析引擎”的玩法通过 MCP 协议把流量、请求历史、扫描结果变成 AI 可调用的工具让 Claude 在本地安全测试流程里做自动化漏洞挖掘分析。不是概念演示而是可以直接落地的工程化思路。先说它解决什么问题日常用 Burp Suite 做授权渗透测试或 SRC 漏洞挖掘时最耗时的是看请求包、找可疑参数、对比响应差异、判断漏洞类型。这些工作重复度高、依赖经验但逻辑并不难。Claude 这类大模型擅长代码和协议理解只要能把数据从 Burp 里“喂”给它再定义好工具接口它就可以帮你做初步分析、生成测试用例、整理报告。MCPModel Context Protocol模型上下文协议是连接 Claude 和外部工具的中间层Burp Suite 则通过自己的 REST API 或 MCP 扩展暴露数据。三者串起来就是一套可复用的 AI 辅助漏洞挖掘工作流。核心特点可以浓缩为五点流量自动摘要AI 能读取 Burp Proxy History快速定位高风险请求。漏洞初步分类Claude 基于请求/响应语义判断可能的注入、越权、信息泄露等风险。测试用例生成AI 根据分析结果生成下一步手工测试的参数、Payload 思路。报告导出批量分析后自动汇总成 Markdown 报告。可编程扩展MCP 工具可按需自定义不限于 Burp还能接其他安全工具。本文会带你走一遍工作原理、环境准备、部署步骤、接口调用方式和常见坑不写空话只给能抄的配置。1. 核心能力速览能力项说明项目类型AI 辅助安全测试工作流非单一工具核心组件Burp Suite Claude MCP Server协议基础Model Context ProtocolMCP主要功能流量分析、漏洞初步识别、测试用例生成、报告汇总支持 AI 客户端Claude Desktop、Claude Code 等支持 MCP 的客户端启动方式命令行启动 MCP ServerBurp 开启 REST API是否支持 API支持MCP Server 内部通过 Burp REST API 调用数据是否支持批量任务支持可批量遍历 Proxy History 并生成报告适合场景授权渗透测试、SRC 漏洞挖掘、安全教学、内部资产审计许可要求必须取得目标系统测试授权严禁未授权测试显存这类参数不适用因为这里不是本地大模型主要依赖 Claude API 或 Claude Code 的远端推理能力。真正吃资源的是 Burp Suite 自身和本地 MCP Server 进程。2. 适用场景与使用边界这套工作流适合三类人一是安全测试工程师。每天抓包、看参数、发重复请求可以交给 AI 做第一轮筛选人工负责复核和深入利用。二是 SRC 漏洞挖掘新手。经验不足时让 Claude 给出分析思路和 Payload 方向比翻文档效率高但一定要有自己的判断AI 不是权威。三是安全教学和内部培训。可以用它演示漏洞原理、攻击路径、修复建议让学生看到 AI 工具链如何落地。不适合的场景也很明确未授权目标、生产环境的敏感数据、无法控制数据出境的项目。因为 Claude API 调用会把请求数据发送给 Anthropic 的服务器如果目标系统包含核心业务数据、个人信息或保密内容必须先做脱敏和过滤。合规边界是底线。文章里所有“漏洞挖掘”都必须限定在授权范围内。如果你没有获得书面授权那就不要跑任何自动化测试。涉及第三方系统、SRC 项目时先看项目规则是否允许使用 AI 辅助涉及人脸、个人信息、版权素材时必须确认数据使用授权。3. 工作流架构与核心组件整体架构不复杂核心是三个角色Burp Suite流量代理负责拦截和记录 HTTP 请求/响应提供 REST API。MCP Server中介层连接 Burp REST API把数据包装成 Claude 可调用的工具函数。ClaudeAI 大脑通过 MCP 协议调用工具理解数据输出分析结果。数据流大致如下Burp 拦截到目标系统的 HTTP 流量。MCP Server 通过 Burp REST API 拉取当前 Proxy History 或指定请求。Claude 在对话中触发 MCP 工具拿到请求/响应内容。Claude 分析后给出可能的漏洞类型、风险等级、验证思路。如果需要MCP Server 再把 Claude 的结论写回 Burp Issue 或导出到本地文件。如果你用 Claude Code那么整个交互可以在终端里完成输入“分析最近 30 条请求中的可疑点”AI 自动调用 MCP 工具把结果列出来你确认后再继续。如果你用自定义 Python 脚本也可以脱离 Claude Code直接用 Anthropic API 实现类似功能但会失去 MCP 的标准化管理能力。MCP 在这里的价值是“工具标准化”。不用为每个需求单独写代码Claude 可以根据你的自然语言指令动态选择调用哪个工具、传什么参数。4. 环境准备与部署前置条件先列一份通用前置清单版本号以你实际安装为准环境项要求操作系统Windows 10/11、macOS、Linux 均可Burp Suite专业版REST API 功能需要专业版社区版无法启用 APIClaude 账号已获得 Claude API Key 或可直接使用 Claude CodeMCP 运行环境Python 3.10 和 Node.js 18按 MCP Server 实现选择网络需要能访问 Anthropic API 的网络环境磁盘空间2GB 以上主要用于 Burp 缓存和日志内存至少 8GBBurp 本身较吃内存需要注意Burp Suite 社区版没有内置 REST API。如果你只有社区版需要改用第三方 MCP 扩展通过 UI 自动化读数据或者先用 Burp 的“导出项目”功能导出请求再丢给 Claude 分析。但这样会丢失实时性体验差很多。建议直接用专业版或者用 Burp 的 Headless 模式配合官方扩展。另外Claude API 是付费服务token 消耗速度很快。批量分析全部请求时务必先控制请求数量和数据大小避免账单飙升。5. 安装配置与启动步骤下面给出一套通用配置流程。具体命令以你下载的 MCP Server 项目为准但流程基本一致。5.1 安装 Claude Code可选如果你选择用 Claude Code 作为 AI 客户端先安装npm install -g anthropic-ai/claude-code安装完成后配置 API Key 或直接登录 Claude 账号export ANTHROPIC_API_KEY你的API Key如果系统提示“claude 不是可识别的命令”说明 Node.js 环境变量没配好重新安装 Node.js 并检查 PATH。5.2 启用 Burp Suite REST API打开 Burp Suite进入Settings - Suite - REST API启用 API 服务默认监听地址通常是127.0.0.1:1337然后生成一个 API Key。记下地址和 Key后面 MCP Server 要用。5.3 创建 MCP Server 项目MCP Server 可以用 Python 或 TypeScript 编写。这里以 Python 为例项目结构建议burp-mcp/ ├── mcp_server.py ├── requirements.txt └── config.jsonrequirements.txt里至少需要mcp0.1.0 requests安装依赖pip install -r requirements.txt5.4 编写 MCP Server 核心逻辑一个最简单的 MCP Server 要暴露两个工具获取代理历史和获取请求详情。示例代码如下核心是调用 Burp REST API 并返回给 Claudeimport json import requests from mcp.server import Server, Tool BURP_HOST 127.0.0.1 BURP_PORT 1337 BURP_API_KEY 你的Burp API Key def burp_headers(): return { Authorization: fBearer {BURP_API_KEY}, Content-Type: application/json } def get_proxy_history(limit: int 20) - str: 获取 Burp Proxy History 最近的请求 url fhttp://{BURP_HOST}:{BURP_PORT}/v0.1/proxy/history params {limit: limit} resp requests.get(url, headersburp_headers(), paramsparams, timeout30) resp.raise_for_status() items resp.json().get(data, []) return json.dumps(items, ensure_asciiFalse, indent2) def get_request_detail(request_id: int) - str: 根据 ID 获取完整请求详情 url fhttp://{BURP_HOST}:{BURP_PORT}/v0.1/proxy/history/{request_id} resp requests.get(url, headersburp_headers(), timeout30) resp.raise_for_status() return json.dumps(resp.json(), ensure_asciiFalse, indent2) # 注册 MCP 工具 tools [ Tool(nameget_proxy_history, description获取最近的HTTP请求历史, funcget_proxy_history), Tool(nameget_request_detail, description获取请求详情, funcget_request_detail) ] server Server(burp-mcp) for tool in tools: server.add_tool(tool) if __name__ __main__: server.run()这只是一个最小示例。实际项目中你还需要把 Burp 返回的响应体格式化过滤掉二进制内容避免 token 爆炸。响应体过大时只截取前几千字符。5.5 注册 MCP Server 到 Claude如果你用 Claude Code 或 Claude Desktop需要把 MCP Server 注册到客户端里。不同客户端的配置位置不同但标准配置格式如下{ mcpServers: { burp-mcp: { command: python, args: [/path/to/burp-mcp/mcp_server.py], env: { BURP_HOST: 127.0.0.1, BURP_PORT: 1337, BURP_API_KEY: your-burp-api-key } } } }配置完成后重启 Claude Code输入“列出可用的工具”如果能识别到get_proxy_history说明 MCP 已经接通。5.6 验证 Burp REST API 是否可用在配置 MCP Server 之前先用 curl 验证 Burp API 连通性curl -s -X GET http://127.0.0.1:1337/v0.1/proxy/history?limit5 \ -H Authorization: Bearer your-burp-api-key如果返回 JSON 数据说明 Burp REST API 正常。如果返回 401检查 API Key 是否正确如果连接不上检查 Burp 是否开启 API 服务以及防火墙是否拦截本地端口。6. 功能测试与效果验证6.1 测试目标先用本地靶场或已授权的测试站点不要直接用真实业务系统。推荐使用 DVWA、WebGoat、Pikachu 等漏洞靶场构造已知请求验证 AI 能否识别出问题。6.2 测试用例分析最近 10 条请求在 Claude Code 中输入帮我调用 get_proxy_history 工具获取最近 10 条请求然后逐条分析可能的注入点和风险点。预期结果Claude 会列出每条请求的 URL、方法、参数。对可疑参数标记“SQL 注入候选”“XSS 候选”“IDOR 候选”等。给出风险等级判断和下一步测试建议。判断标准AI 能输出结构化的分析表格或清单且能准确引用请求中的参数名。如果 Claude 告诉你“我没有获取到数据”先检查工具调用是否成功。可以输入“尝试直接调用 get_proxy_history 并打印结果”定位是 MCP 连接问题还是数据解析问题。6.3 测试用例分析单个请求详情先获取到某个请求的 ID再调用详情工具获取请求 ID 为 7 的完整详情帮我分析响应头中缺失了哪些安全头。预期结果Claude 会对比标准安全响应头指出缺少Content-Security-Policy、X-Frame-Options等并说明风险。失败常见原因请求 ID 不一定对应 Proxy History 的索引Burp REST API 的 ID 是自增 ID需要先通过历史列表获取。如果报 404一是 ID 无效二是历史记录被清理。6.4 测试用例批量导出分析报告这是最实用的功能。让 Claude 读取 30 条请求分析完后汇总成 Markdown 文件分析最近 30 条请求将可疑点整理成 Markdown 报告包含风险等级、漏洞类型、请求 ID、验证思路保存到 report.md。预期结果MCP Server 能连续调用工具多次Claude 汇总生成报告并通过写文件工具保存到本地。这里要注意如果 30 条里包含大量二进制数据或超大响应会导致 token 超限。更稳妥的方式是先让 AI 只提取请求行和参数或者只分析 URL 和响应码。6.5 判断整个工作流是否可用的标准Claude 能主动调用 MCP 工具而不是让你手动复制粘贴。工具调用返回的数据能被 Claude 正确理解和总结。分析结果不是泛泛而谈而是针对具体请求给出可验证的测试方向。整个流程可重复执行批量任务不会中途断掉。如果以上都通过工作流基本可用。7. 接口 API 与批量任务设计MCP Server 本身就是一套接口层。你可以把它理解成“Claude 调用 Burp 的翻译器”每个工具都是一个可复用的 API。7.1 自定义高级工具除了获取历史你还可以设计更贴近业务的工具例如工具名功能说明scan_single_request对单个请求调用 AI 做漏洞类型判断batch_analyze_urls批量分析一组 URL 对应的历史请求export_issues_to_markdown把 AI 分析结果转换成报告文件filter_by_param按参数名筛选历史请求找到所有带 id 参数的请求工具设计原则是“一次做一件事参数尽量少”。Claude 能根据自然语言自动调用但工具描述要写清楚。7.2 批量任务队列批量分析时不建议一次性把全部历史丢给 AI。更好的做法是在 MCP Server 里加一个任务队列import time from queue import Queue task_queue Queue() def process_batch(request_ids: list[str]) - str: 批量处理请求返回分析摘要 results [] for req_id in request_ids: detail get_request_detail(req_id) results.append({id: req_id, analyzed: True}) time.sleep(1) # 控制调用频率 return json.dumps(results, ensure_asciiFalse)实际开发时可以用 Redis 或简单文件队列做持久化避免进程重启丢任务。每次处理前先把待分析请求 ID 列表写入任务文件处理完后标记完成。失败的任务要单独记录方便重试。7.3 curl 调用 Burp API 的通用模板如果你想绕开 MCP直接测试 Burp API可以参考# 获取最近 20 条代理历史 curl -s http://127.0.0.1:1337/v0.1/proxy/history?limit20 \ -H Authorization: Bearer your-burp-api-key | jq .data[].request.url这里用jq提取 URL避免输出过大。如果没有jq直接看原始 JSON 也行。7.4 批量任务中的失败重试建议给每次 API 调用设置超时避免单个请求卡死。大批量处理时加 sleep 或重试机制防止 Burp 过载。如果 Claude API 返回 429 限流按指数退避重试。分析结果落盘时要带时间戳方便追溯。8. 资源占用与性能观察这里没有固定的显存门槛但要注意三个资源瓶颈。第一个是 token 消耗。这是最大的开销。Claude API 按输入和输出的 token 计费一次完整请求可能包含 URL、请求头、请求体、响应体很容易把上下文塞满。控制 token 的方法有三种只传请求行和关键参数不传完整响应体。截断响应体例如只保留前 2000 字符。批量分析时使用流式输出边生成边保存。第二个是 Burp Suite 自身的内存占用。Burp 抓包越多内存越大。如果 MCP Server 频繁调用历史接口Burp 会对整个历史做索引内存可能飙升。建议定期清理 Burp Project 中的旧记录或按目标站点过滤后再分析。第三个是 MCP Server 进程本身。如果使用 Python 实现且没有做好线程管理长时间批量任务可能会占满 CPU。可以给工具函数加asyncio或使用线程池但更简单的是限制 batch size一次只处理 10 条请求。性能观察重点看这几个指标单次工具调用耗时正常应该在 1 到 5 秒超过 10 秒基本是网络问题。每次批量任务消耗的 token 数可以在 Claude Code 日志里看到。Burp REST API 的响应延迟历史记录多时接口查询可能变慢。降低资源占用的通用做法只分析目标站点不开全局抓包请求体超过 50KB 的跳过只保留最近 50 条历史。9. 常见问题与排查方法问题现象可能原因排查方式解决方案Claude 说“无法调用 burp-mcp 工具”MCP Server 未启动或配置错误检查 MCP Server 进程和客户端日志确认 server 启动成功重启客户端curl 测试 Burp API 返回 401API Key 错误或过期检查 Burp 设置里的 Key重新生成 API Keyburp-mcp 启动后立即退出Python 依赖缺失或端口被占用查看终端报错安装 requirements.txt更换端口Claude 返回内容明显不相关请求数据顺序混乱或字段截断检查 get_proxy_history 返回的 JSON在 MCP Server 里格式化并限制字段批量分析中途停止API 限流或超时查看日志中的 HTTP 状态增加重试机制和 sleeptoken 消耗过快响应体太大检查实际发送给 Claude 的数据长度只保留请求行和参数Burp 中看不到历史代理没配好或流量没经过 Burp检查浏览器代理设置确认浏览器通过 Burp 访问目标服务器无法访问 Anthropic API网络问题测试目标域名连通性检查网络策略但遵守合规要求Claude Code 命令未识别Node.js 环境变量问题执行node -v和npm -v重新安装 Node.js 并配置 PATH10. 最佳实践与使用建议第一先把最小链路跑通。不要一上来就做复杂批量任务。先用一条已知请求让它通过 MCP 进入 Claude再分析再扩展。第二数据脱敏必须做。Burp 历史里会有 Cookie、Token、密码参数。在 MCP Server 返回给 Claude 之前要把Authorization头、Cookie、Set-Cookie等敏感字段替换为[REDACTED]。这是合规要求也是自我防护。第三建立固定的目录结构。建议这样组织workflow/ ├── inputs/ # 需要分析的请求 ID 列表或导出文件 ├── outputs/ # AI 生成的报告 ├── logs/ # MCP Server 运行日志 └── scripts/ # MCP Server 源码第四对 AI 的分析结果永远保持怀疑。Claude 可能把正常参数识别成漏洞也可能漏掉真实风险。它的价值是“辅助筛选”不是“最终判定”。所有高风险结论都要人工验证。第五控制测试范围。在 MCP Server 里加一个域名白名单只允许分析授权域名的请求。例如target.com其它域名直接跳过。第六关注合规。使用 AI 辅助漏洞挖掘时确认目标授权范围覆盖“自动化测试”和“第三方 AI 分析”行为。SRC 项目如果禁止提交外部数据你就不能用 Claude API只能换本地模型或不上传数据。11. 总结与下一步这套“Burp Suite × Claude MCP”工作流最值得尝试的点不是让 AI 直接攻击目标而是把 Burp 里最耗时、最乏味的“看包”工作交给 AI 做第一轮筛查。你先验证 MCP 连接再跑通“获取历史 - 单条分析 - 批量导出报告”这条链路就能看到实际效率提升。最容易踩的坑有三个Burp REST API 没开导致连不上响应体太大导致 token 爆掉没有做敏感字段脱敏导致数据风险。这三个坑提前规避整个流程会很顺。后续可以往这些方向扩展在 MCP Server 里集成 Nuclei、Semgrep 等扫描器让 Claude 根据扫描结果自动定位请求把报告接进飞书或企业微信批量任务跑完自动通知或者接入本地大模型解决数据无法上云的问题。核心思路不变用 MCP 把安全测试能力标准化让 AI 做分析和归纳人来决策。建议收藏备用。下次做授权测试时把这条工作流跑一遍你会发现“AI 自动化漏洞挖掘”不是玄学而是可以一步步搭出来的工程方案。