1. 为什么要在 Burp Suite 里接 AI 和 MCP
做安全测试的人大多有个共同体验:Burp Suite 抓包很强,但分析环节还是靠人肉。一个登录接口返回了 3KB 的 JSON,里面嵌套了 token、权限字段、时间戳,你得自己翻;一个越权测试跑了 200 条请求,哪几条响应体差异值得深挖,也得自己比对。Burp 本身有 Scanner,但规则是固定的,遇到业务逻辑漏洞基本帮不上忙。
我想要的是一种更灵活的方式:让大模型直接读我选中的请求和响应,按我给的提示词做分析;同时模型不只是一个聊天窗口,它还能调用我本地的工具、查我本地的数据库、甚至连到远程的 Agent 去执行任务。这就是 MCP(Model Context Protocol)的价值——它把「模型」和「工具」用统一协议连起来,模型可以主动调用工具,而不是只被动回答问题。
BurpAgent 这个插件做的正是这件事:把 LLM 和 MCP 塞进 Burp Suite,让你在抓包的界面里就能完成「选中流量 → AI 分析 → 调用工具 → 拿到结论」的闭环。它适合几类人:做 Web 渗透测试、想用 AI 辅助代码审计、需要把本地脚本能力接进 Burp、或者想搭一个远程 Agent 做自动化分析的安全工程师。下面我从零开始,把配置骨架、settings.json 示例、一次完整的验证动作,以及我踩过的坑都写清楚。
2. 前置准备:TaoToken 接入与插件安装
2.1 为什么用 TaoToken 做模型入口
BurpAgent 需要调用大模型,你可以填官方 API,也可以填兼容 OpenAI 协议的聚合入口。我用 TaoToken 是因为它一个 Key 能切换 GPT-4、DeepSeek 等模型,省得为每个模型单独配 Key。它的接口地址是https://taotoken.net/api,兼容 OpenAI 的/v1/chat/completions格式,BurpAgent 里填 Base URL 和 API Key 就能用。
先到控制台创建 API Key:
控制台入口:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=burp_mcp_console
创建完 Key 后,建议先在模型对话页面确认 Key 可用、模型能正常返回,再去配插件,避免把「Key 错」和「插件配错」两个问题混在一起排查:
模型对话验证:https://taotoken.net/model-chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=burp_mcp_chat
如果你后面要做长期的编码类 Agent 任务(比如让模型持续分析大量流量、跑多轮工具调用),可以了解下 Coding Plan,它更适合高频、长上下文的场景:
Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=burp_mcp_plan
2.2 安装 BurpAgent
BurpAgent 是 Burp Suite 的扩展,安装方式两种:从 BApp Store 搜(如果已上架),或者手动加载 JAR。手动加载的步骤是:打开 Burp → Extender → Extensions → Add → 选择 Extension type 为 Java → 选中下载好的 JAR 文件。加载成功后,Burp 顶部会多出一个 BurpAgent 标签页。
插件加载后第一件事是配模型。在 BurpAgent 的设置面板里,找到 LLM 配置区,填入:
| 配置项 | 值 |
|---|---|
| Base URL | https://taotoken.net/api |
| API Key | 你在控制台创建的 Key |
| Model | 例如 gpt-4o 或 deepseek-chat |
| Temperature | 0.2(安全分析建议低温度,减少发散) |
填完点测试连接,返回 200 且能看到模型回复,说明模型通道通了。这一步不通,后面 MCP 配得再好也没用。
3. 可复制配置:MCP Server 与 settings.json 骨架
3.1 MCP 的两种连接方式
MCP Server 有两种接入方式,BurpAgent 都支持:
- stdio:本地进程,插件启动一个子进程,通过标准输入输出通信。适合本地工具,比如文件操作、本地脚本、SQLite 查询。
- SSE:远程连接,通过 HTTP SSE 连到远程 MCP Server。适合远程 Agent、团队共享的分析服务。
在 BurpAgent 的 MCP 设置面板里,你可以添加多个 Server,每个 Server 配名称、类型、启动命令或 URL。设置面板会显示每个 Server 的连接状态(已连接/断开/错误),这个状态监控很关键,后面排障主要看它。
3.2 settings.json 示例
下面是一份可直接改的 settings.json 骨架,包含一个 stdio 本地 Server 和一个 SSE 远程 Server:
{ "mcpServers": { "local-files": { "command": "python", "args": ["-m", "mcp_server_filesystem", "--root", "/Users/you/testdata"], "env": { "PYTHONUNBUFFERED": "1" }, "type": "stdio" }, "local-sqlite": { "command": "python", "args": ["/Users/you/mcp/sqlite_server.py", "--db", "/Users/you/testdata/target.db"], "type": "stdio" }, "remote-agent": { "url": "https://your-agent.example.com/sse", "type": "sse", "headers": { "Authorization": "Bearer YOUR_AGENT_TOKEN" } } } }几个要点:command必须是系统能找到的可执行文件,Windows 下写python.exe的绝对路径更稳;args里带路径的,用绝对路径,别用~,插件子进程不一定展开;SSE 的headers用来带鉴权,远程 Agent 一般都要。
3.3 自定义脚本工具
除了标准 MCP Server,BurpAgent 还支持挂载 Python/Bash/Batch 脚本作为 AI 可调用的工具。比如你写一个check_waf.py,输入 URL 返回 WAF 指纹,模型在分析流量时就能主动调用它。插件内置了命令黑名单和执行确认机制——模型要执行脚本时,会先弹确认,你点了才跑。这个设计很有必要,否则模型可能执行危险命令。
脚本工具的配置也在设置面板里,指定脚本路径、解释器、参数模板即可。自动解析执行结果这块,建议脚本输出 JSON,模型解析更稳。
4. 验证请求:从流量捕获到 AI 辅助分析
4.1 一次完整的验证动作
配置完别急着上生产,先用一个可控的请求验证整条链路。步骤:
- 打开 Burp 的 Proxy → HTTP history,找一个你测试环境的请求(比如
GET /api/user?id=1001)。 - 右键 → Send to BurpAgent(或选中后在 BurpAgent 面板点分析)。
- 在 BurpAgent 面板里选一个 Skill,比如「代码审计员」,或者自己写 Prompt:「分析这个响应,指出可能的越权风险点,并说明判断依据」。
- 点发送,观察模型返回。
如果模型返回了分析结论,说明 LLM 通道通了。接下来验证 MCP:在 Prompt 里加一句「用 local-sqlite 工具查一下 users 表里 id=1001 的记录,对比响应里的字段」。如果模型能调用工具并返回数据库结果,说明 MCP 链路也通了。
4.2 用 curl 先验证模型通道
在配插件之前,我习惯先用 curl 确认 Key 和模型没问题,这样排障时能快速定位是网络问题还是插件问题:
curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4o", "messages": [ {"role": "user", "content": "用一句话说明什么是越权漏洞"} ], "temperature": 0.2 }'返回里有choices[0].message.content就说明通道正常。这一步过了,插件里再报错,问题就在插件配置或 MCP Server 上。
4.3 成功结果长什么样
一次成功的 AI 辅助分析,输出应该包含:风险点定位(哪个参数、哪个字段)、判断依据(响应里的什么特征)、建议的验证动作(再发什么请求确认)。比如模型可能返回:「响应中role字段返回了admin,但请求里id=1001是普通用户 ID,存在水平越权可能。建议用 id=1002 的会话重放该请求,对比role字段。」这种输出才是可跟做的,而不是泛泛而谈。
5. 本篇常见错排查
5.1 MCP Server 显示断开
最常见的原因是command路径不对。插件启动子进程时,工作目录和你的终端不一样,相对路径会失效。全部改成绝对路径。第二个原因是 Python 环境:python -m mcp_server_filesystem要求这个包装在当前 Python 环境里,如果你用虚拟环境,command要指向虚拟环境的 python。
5.2 模型不调用工具
模型不调工具,通常是 Prompt 里没明确要求,或者工具描述不清晰。MCP Server 的工具描述(description)要写清楚「这个工具做什么、参数是什么」,模型靠这个决定调不调。另外温度别太高,0.2 左右比较稳。如果还是不调,在 Prompt 里直接点名:「请使用 local-sqlite 工具查询」。
5.3 SSE 远程连接超时
SSE 连接超时,先确认 URL 可达:curl -N https://your-agent.example.com/sse,看能不能收到事件流。如果服务端要求鉴权,确认 headers 里的 token 没写错。还有一点,SSE 是长连接,中间如果有反向代理,要确认代理没把连接掐断。
5.4 脚本工具执行被拦
脚本被黑名单拦了,说明脚本里用了被禁的命令。插件的黑名单是为了防止模型执行危险操作,别去绕它,改脚本逻辑。如果确实需要某个命令,看插件设置里能不能加白名单,加之前想清楚风险。
5.5 API Key 报 401
401 一般是 Key 错、Key 过期、或者 Base URL 写错。Base URL 是https://taotoken.net/api,别多加/v1,插件一般会自己拼。如果确认 Key 没问题,去控制台看下 Key 的状态和额度:
API Keys 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=burp_mcp_keys
5.6 接入文档在哪
MCP 配置和接入的细节,官方文档写得更全,遇到协议层的问题可以查:
接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=burp_mcp_doc
6. 把 AI 分析接进你的日常测试流
配好之后,我建议你先固定一个 Skill,比如「越权分析员」,把 System Prompt 写死成你常用的分析框架,这样每次分析输出格式一致,方便对比。然后从单个请求分析开始,逐步过渡到批量:选中多条请求,让模型逐条分析并汇总风险点。
如果你要做更重的自动化,比如让 Agent 持续跑、多轮调用工具、分析大量流量,可以考虑用 Coding Plan 那类长上下文方案,把 BurpAgent 当入口,远程 Agent 当执行体:
Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=burp_mcp_plan_end
最后提醒一句:MCP 让模型能调工具,能力越大风险越大。生产数据库别直接挂,脚本工具的黑名单别乱改,远程 Agent 的鉴权别省。安全测试本身就是在边界上做事,工具链的安全边界更要守住。