ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Burp Suite MCP Server 扩展实战:用 OpenCode 操控 Burp Suite 的配置与验证

Burp Suite MCP Server 扩展实战:用 OpenCode 操控 Burp Suite 的配置与验证 1. 为什么要在 OpenCode 里操控 Burp SuiteBurp Suite 是 Web 安全测试里绕不开的工具Proxy 抓包、Repeater 重放、Intruder 爆破这些操作大家都很熟。但实际做接口审计的时候我经常遇到一个尴尬场景Burp 的 HTTP history 里躺着几百条请求我想让 AI 帮我快速筛出所有/api/开头的端点、看看哪些响应里带了 JWT、哪些 JS 文件里硬编码了内网地址结果只能手动一条条翻或者导出成文件再丢给 AI来回折腾。Burp Suite MCP Server 扩展解决的正是这个问题。它把 Burp 的 Proxy history、请求发送、Repeater 创建、编码解码等能力封装成 MCP 工具OpenCode 作为支持 MCP 协议的客户端通过mcp-proxy.jar桥接到 Burp 的 SSE 端点就能用自然语言直接操控 Burp。适合谁做 API 安全审计、JS 敏感信息排查、日常渗透测试的同学尤其是已经在用 OpenCode 写代码、想顺手把安全测试也接进同一个工作流的人。这篇不讲概念直接给可复制的配置骨架和逐步验证动作。从 Java 环境准备、mcp-proxy.jar 放置、Burp MCP Server 扩展加载到 OpenCode 侧opencode.json配置接入最后跑一次请求拦截与重放验证确认链路真正打通。踩过的坑我也会在排障章节里标出来。2. 前置准备Java、mcp-proxy.jar 与 Burp 扩展2.1 环境要求对照先把版本对齐版本不对后面全是玄学问题。组件版本要求说明Burp SuiteProfessional / Community 2024扩展依赖新版 APIJavaJRE 17运行 mcp-proxy.jarOpenCode已安装可正常运行支持 MCP 配置网络本机回环 127.0.0.1无需外网mcp-proxy.jar本地文件桥接 Burp SSE 端点Java 版本用一条命令确认java --version输出里看到17.x或更高就行。低于 17 的话 mcp-proxy.jar 启动会直接报UnsupportedClassVersionError这个报错很典型看到就知道是 Java 版本问题。2.2 mcp-proxy.jar 放哪mcp-proxy.jar 是 MCP Server 的服务器代理包负责把 OpenCode 的 stdio 通信转成 Burp 的 HTTP SSE 请求。我把它放在桌面路径是C:\Users\22538\Desktop\mcp-proxy.jar。这个路径后面要写进配置文件放好之后不要删、不要移、不要改名否则 OpenCode 启动时找不到文件MCP 连接直接失败。2.3 安装 Burp MCP Server 扩展推荐走 BApp Store省事。打开 Burp Suite进入Extender → BApp Store搜索MCP Server找到作者是 Daniel S Daniel Allen 的那个点安装。如果 BApp Store 里搜不到或者网络加载慢走手动安装访问 PortSwigger 的 BApp Store 页面找到 MCP Server 扩展下载最新版.bapp文件然后在 Burp 里进Extender → BApp Store → Manual install选中下载的.bapp文件加载。安装完成后Burp 主界面会多出一个MCP Server标签页这就说明扩展加载成功了。3. 启动 MCP Server 并确认监听地址进入 Burp 的MCP Server标签页点击Start按钮。默认监听地址是http://127.0.0.1:9876注意这里是HTTP 不是 HTTPS后面配置--sse-url的时候必须写http://写成https://会连接失败。注意每次重启 Burp Suite 后MCP Server 都需要重新点一次 Start。这个设计是为了安全避免扩展在后台静默监听。我一开始忘了这茬OpenCode 那边一直报连接失败排查了半天才发现是 Burp 重启后没点 Start。启动后可以在浏览器里访问http://127.0.0.1:9876看看有没有响应有响应说明 SSE 端点活着。4. OpenCode 侧配置接入4.1 配置文件路径OpenCode 的全局配置文件在C:\Users\22538\.config\opencode\opencode.json如果目录不存在就手动建一下。这个文件是 JSON 格式改之前建议先备份一份。4.2 可复制的配置骨架{ $schema: https://opencode.ai/config.json, mcp: { burp-suite: { type: local, command: [ java, -jar, C:\\Users\\22538\\Desktop\\mcp-proxy.jar, --sse-url, http://127.0.0.1:9876 ], enabled: true, timeout: 30000 } } }4.3 字段逐个说明字段值说明typelocal本地 MCP 服务器通过 stdio 通信command[java, -jar, ...mcp-proxy.jar, --sse-url, http://127.0.0.1:9876]用 mcp-proxy.jar 桥接 Burp 的 HTTP SSE 端点enabledtrue启动时自动启用timeout30000请求超时时间单位毫秒关键点有三个一是--sse-url必须是http://127.0.0.1:9876协议和端口都要对二是 jar 路径里的反斜杠在 JSON 里要写成\\转义三是 timeout 给 30000ms 起步history 数据量大的时候可以往上加。如果 Burp 的 MCP Server 开启了 External Access需要 Token 认证需要在 command 里加--oauth21参数或者配置MCP_AUTH_TOKEN环境变量。默认不开 External Access 的话不用管。4.4 可选Burp Analyst Agent如果想让 OpenCode 用专用 Agent 来做安全分析可以建一个 agent 文件C:\Users\22538\.opencode\agents\burp-analyst.md内容骨架--- name: burp-analyst description: Burp Suite 安全分析师通过 Burp 官方 MCP Server 扩展连接 Burp Suite。 mode: subagent --- 你是一个 Burp Suite 安全分析师通过 Burp 官方 MCP Server 扩展连接 Burp Suite。 ## 可用工具 - burp_get_proxy_history获取 HTTP proxy history - burp_send_request发送 HTTP/1.1 请求 - burp_send_request_http2发送 HTTP/2 请求 - burp_create_repeater创建 Repeater 标签页 - burp_proxy_intercept控制 Proxy 拦截开关 - burp_encode / burp_decode编码解码 - burp_collaborator生成 Collaborator 负载仅 Pro ## 工作流程 1. 用 burp_get_proxy_history 拉取请求 2. 提取 API 端点、JS 文件、敏感信息 3. 对关键端点用 burp_send_request 手动测试 4. 输出摘要标记高危发现配好之后在 OpenCode 里输入burp-analyst就能激活这个专用 Agent。5. 重启验证一次可复现的拦截与重放5.1 重启 OpenCode配置改完必须重启 OpenCode 才生效。先退出当前运行的客户端再重新启动观察启动日志里有没有 MCP 相关的报错。5.2 验证连接在 OpenCode 对话里输入查看 Burp 的 HTTP history如果配置正确OpenCode 会调用burp_get_proxy_history工具返回 Burp Proxy 里捕获的请求列表。能返回数据就说明链路通了。5.3 一次完整的拦截与重放验证光看 history 还不够得验证写操作也能走通。按下面步骤来一遍第一步确保浏览器已经配好 Burp 代理默认127.0.0.1:8080随便访问一个目标站点让 Proxy history 里有记录。第二步在 OpenCode 里发指令从 Burp history 里找一条 GET 请求用 burp_send_request 重放一次把响应状态码和响应头返回给我第三步观察 OpenCode 的返回。正常情况它会先调burp_get_proxy_history拿到请求再调burp_send_request发送最后把响应结果贴出来。如果能看到状态码和响应头说明读和写两条链路都通了。第四步验证 Repeater 创建把刚才那条请求用 burp_create_repeater 发到 Repeater 标签页然后切到 Burp 界面看 Repeater 里是不是多了一个标签页。有的话说明 OpenCode 对 Burp 的操控是真实生效的不是只读了个缓存。5.4 成功结果长什么样一次成功的调用OpenCode 侧会显示工具调用记录类似调用 burp_get_proxy_history → 返回 128 条记录 调用 burp_send_request → 返回 200 OKContent-Type: application/json 调用 burp_create_repeater → 成功创建 Repeater 标签页Burp 侧则能在 Proxy history 和 Repeater 里看到对应的变化。两边对得上链路就是通的。6. 本篇常见错排查6.1 OpenCode 启动时 MCP 连接失败最常见的原因是 Burp 的 MCP Server 没点 Start。每次重启 Burp 都要重新点一次这个坑我踩过不止一回。其次检查 mcp-proxy.jar 路径对不对桌面文件是不是被移走了。再就是 Java 版本跑java --version确认是 17。最后看 9876 端口有没有被别的程序占用。6.2 连接成功但工具调用报错Burp 版本太低或者 MCP Server 扩展版本太旧去 BApp Store 检查更新。另一个高频原因是 Burp 没捕获到任何流量Proxy history 是空的OpenCode 自然查不到数据。先配好浏览器代理浏览一下目标网站再试。还有 Proxy Intercept 处于开启状态时发送请求会被挂起建议调用期间先关掉 Intercept或者用burp_proxy_intercept工具控制。6.3 查询超时History 数据量太大是主因。先按域名、方法、状态码过滤缩小范围分批查询。如果 Burp 本身响应慢把opencode.json里的 timeout 从 30000 往上加。网络代理配置也要检查Burp 的代理监听设置不对会影响 SSE 端点响应。6.4 返回 403 ForbiddenBurp MCP Server 开启了 External Access 但没提供 Token。两个解法在 MCP Server 设置里关掉 External Access或者获取 Token 后在配置里加上认证信息。默认不开 External Access 的话不会遇到这个问题。6.5 其他注意事项mcp-proxy.jar 不能删除或移动路径是写死在配置里的。避免大量请求同时操作并发太高容易超时。通过 Burp MCP 拿到的数据可能包含 JWT、API Key、内网 IP 这些敏感信息分享截图或记录的时候记得脱敏。Java 环境要保持可用卸载或者降级到 17 以下都会让 MCP 服务器起不来。7. 把安全测试接进日常编码流链路打通之后实际用法比配置本身更有意思。我平时会这么组合先在 Burp 里正常抓包积累一批目标站点的请求然后切到 OpenCode用burp-analyst让 Agent 批量分析 history提取 API 端点、检查 JS 里的硬编码密钥、标记可疑的 JWT对感兴趣的端点直接让 OpenCode 调burp_send_request做参数变形测试或者丢进 Repeater 手动深挖。这套流程的价值在于安全测试和代码审计在同一个 OpenCode 会话里完成不用在多个工具之间来回切。如果你还没配 OpenCode 的模型接入可以先去 TaoToken 模型对话 把对话链路跑通需要长期跑 Agent 做批量分析的看 Coding Plan 更划算配置过程中要拿 API Key 的直接进 API Keys 管理 生成接入细节和参数说明在 接入文档 里都有。配置卡住了先翻第 6 节的排障清单八成能对上号。
返回列表