Burp REST桥
Burp Suite扩展+MCP服务器,允许Claude直接与Burp-search代理交互 历史记录、读取请求/响应、发送到中继器、重新发送修改后的请求和检查范围。
运作原理
Burp Suite
└── burp-rest-bridge.jar Java extension — captures all tool traffic,
serves a REST API on http://127.0.0.1:8090
burp_mcp.py FastMCP server — wraps the REST API as Claude tools
burp_client.py Python client — importable library + CLI克劳德与 burp_mcp.py 通过MCP协议。MCP服务器调用扩展的REST API所有内容都保留在本地主机上。
快速开始
bash setup.sh该脚本安装Python依赖项,使用Claude Code注册MCP服务器,并打印 构建JAR并将其加载到Burp Suite中的分步说明。
Claude工具(通过MCP)
| 工具 | 说明 |
|---|---|
burp_health | 检查扩展是否正在运行 |
burp_hosts | 列出所有捕获的主机名 |
burp_search | 按主机、方法、状态、文本、MIME类型、工具搜索历史记录。..可选地包括以匹配为中心的正文片段。 |
burp_extract | 从流量项中提取正则表达式匹配项。指定 extract_in (url、request_headers、request_body、response_headers和response_body)和Python正则表达式模式。仅返回匹配的项目;组控制输出格式(无组=完全匹配,命名=字典,未命名=列表)。 |
burp_get_items | 获取一个或多个项目的结构化请求+响应。大型尸体被自动倾倒到 /tmp 带有预览。使用 json_path 从JSON响应中提取子对象,而不加载全文。 |
burp_summarize_host | 总结主机唯一端点(路径规范化、查询-抓取)、状态分布、身份验证方案和内容类型的API表面。巧妙地分页,这样高容量端点就不会挤掉稀有端点。 |
burp_repeater_latest | 获取中继器发送的最后一个请求 |
burp_send_to_repeater | 将捕获的请求发送到中继器选项卡 |
burp_repeat | 通过可选的字符串替换/标头覆盖/文件上传重新发送捕获的请求 |
burp_request | 通过Burp的代理发送完全自定义的HTTP请求,并可选择上传文件 |
burp_scope | 检查URL是否在Burp的目标范围内 |
CLI使用情况
python3 burp_client.py health
python3 burp_client.py hosts
python3 burp_client.py history --host api.example.com --method POST --status 4
python3 burp_client.py get 42
python3 burp_client.py repeat 42 --replace "role=user" "role=admin"
python3 burp_client.py scope https://example.com/adminREST API(端口8090)
GET /health {"status":"ok","count":N,"port":8090}
GET /proxy/history search — id, tool, timestamp, url, method, status_code
GET /proxy/history/{id} full item — request_text + response_text
GET /proxy/hosts sorted list of unique hostnames
GET /repeater/latest most recent Repeater send
POST /repeater send item to Repeater: {"history_id":42,"tab_name":"test"}
GET /scope?url=... {"url":"...","in_scope":true}
GET / full API reference变更后重建
cd extension && ./gradlew jar
# Then in Burp: Ctrl+click the Loaded checkbox to hot-reload