
关于
从命令行搜索和探索 Burp Suite 项目文件(.burp)。适用于使用正则搜索响应头或正文、提取安全审计发现、导出代理历史或站点地图数据,或分析 Burp 项目中捕获的 HTTP 流量。
name: burpsuite-project-parser description: 从命令行搜索和探索 Burp Suite 项目文件(.burp)。在使用正则表达式搜索响应头或响应体、提取安全审计发现、导出代理历史或站点地图数据、或分析 Burp 项目中捕获的 HTTP 流量时使用。 allowed-tools:
- Bash
- Read risk: unknown source: community
Burp 项目解析器
使用 burpsuite-project-file-parser 扩展从 Burp Suite 项目文件中搜索和提取数据。
何时使用
- 使用正则表达式搜索响应头或响应体
- 从 Burp 项目中提取安全审计发现
- 导出代理历史或站点地图数据
- 分析 Burp 项目文件中捕获的 HTTP 流量
前提条件
此技能将解析委托给 Burp Suite Professional - 它不直接解析 .burp 文件。
必需:
- Burp Suite Professional - 必须已安装(portswigger.net)
- burpsuite-project-file-parser 扩展 - 提供 CLI 功能
安装扩展:
- 从 github.com/BuffaloWill/burpsuite-project-file-parser 下载
- 在 Burp Suite 中:Extender → Extensions → Add
- 选择下载的 JAR 文件
快速参考
使用包装脚本:
{baseDir}/scripts/burp-search.sh /path/to/project.burp [FLAGS]
该脚本使用环境变量以实现平台兼容性:
BURP_JAVA:Java 可执行文件路径BURP_JAR:burpsuite_pro.jar 路径
设置说明请参见平台配置。
子组件过滤器(请使用这些)
始终使用子组件过滤器而非完整导出。 完整的 proxyHistory 或 siteMap 可能返回数 GB 的数据。子组件过滤器只返回你需要的内容。
可用过滤器
| 过滤器 | 返回内容 | 典型大小 |
|--------|---------|--------------|
| proxyHistory.request.headers | 仅请求行 + 请求头 | 小(< 1KB/记录) |
| proxyHistory.request.body | 仅请求体 | 可变 |
| proxyHistory.response.headers | 仅状态 + 响应头 | 小(< 1KB/记录) |
| proxyHistory.response.body | 仅响应体 | 大 - 避免使用 |
| siteMap.request.headers | 站点地图的同上内容 | 小 |
| siteMap.request.body | | 可变 |
| siteMap.response.headers | | 小 |
| siteMap.response.body | | 大 - 避免使用 |
默认方法
从请求头开始,而非请求体:
# GOOD - headers only, safe to retrieve
{baseDir}/scripts/burp-search.sh project.burp proxyHistory.request.headers | head -c 50000
{baseDir}/scripts/burp-search.sh project.burp proxyHistory.response.headers | head -c 50000
# BAD - full records include bodies, can be gigabytes
{baseDir}/scripts/burp-search.sh project.burp proxyHistory # NEVER DO THIS
仅在查看请求头后才获取特定 URL 的请求体,并且始终截断:
# 1. First, find interesting URLs from headers
{baseDir}/scripts/burp-search.sh project.burp proxyHistory.response.headers | \
jq -r 'select(.headers | test("text/html")) | .url' | head -n 20
# 2. Then search bodies with targeted regex - MUST truncate body to 1000 chars
{baseDir}/scripts/burp-search.sh project.burp "responseBody='.*specific-pattern.*'" | \
head -n 10 | jq -c '.body = (.body[:1000] + "...[TRUNCATED]")'
硬性规则:超过 1000 字符的请求体内容绝不能进入上下文。 如果用户需要完整的请求体内容,必须在 Burp Suite 的 UI 中查看。
正则搜索操作
搜索响应头
responseHeader='.*regex.*'
搜索所有响应头。输出:{"url":"...", "header":"..."}
示例 - 查找服务器签名:
responseHeader='.*(nginx|Apache|Servlet).*' | head -c 50000
搜索响应体
responseBody='.*regex.*'
强制要求:始终将响应体内容截断为最多 1000 字符。 响应体每个可能有数 MB。
# REQUIRED format - always truncate .body field
{baseDir}/scripts/burp-search.sh project.burp "responseBody='.*<form.*action.*'" | \
head -n 10 | jq -c '.body = (.body[:1000] + "...[TRUNCATED]")'
永远不要获取完整的响应体内容。 如果需要查看特定响应的更多内容,请让用户在 Burp Suite 的 UI 中打开。
其他操作
提取审计项目
auditItems
返回所有安全发现。输出包括:name、severity、confidence、host、port、protocol、url。
注意: 审计项目很小(无请求体)- 使用 head -n 100 获取是安全的。
导出代理历史(避免使用)
proxyHistory
永远不要直接使用此命令。 请改用子组件过滤器:
proxyHistory.request.headersproxyHistory.response.headers
导出站点地图(避免使用)
siteMap
永远不要直接使用此命令。 请改用子组件过滤器。
输出限制(必需)
关键:在获取数据之前始终检查结果大小。 广泛的
