burpsuite-project-parser – skill Bảo mật cho agent AI
Tìm kiếm và khám phá file project Burp Suite (.burp) từ dòng lệnh. Dùng khi tìm kiếm response header hoặc body bằng regex, trích xuất kết quả kiểm toán bảo mật, xuất lịch sử proxy hoặc dữ liệu site map, hoặc phân tích lưu lượng HTTP được ghi trong project Burp.
Cài skill burpsuite-project-parser bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/burpsuite-project-parser-027b1.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /burpsuite-project-parser – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/burpsuite-project-parser-027b1.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $burpsuite-project-parser – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/burpsuite-project-parser-027b1.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /burpsuite-project-parser – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/burpsuite-project-parser-027b1.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /burpsuite-project-parser – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Supporting material availability
This catalog copy contains the inline guidance below, but does not include the following supporting paths. They are external prerequisites, not bundled files:
scripts/burp-search.sh(wrapper; unavailable in this catalog tree)
Ask for the original supporting material or an existing installation before using a step that depends on these paths; this catalog does not identify a verified download source for them. Resolve each path relative to that installation, inspect its contents, and verify any applicable license and execution prerequisites. Do not run a command or claim a referenced procedure was followed until its required file exists. Do not fabricate the missing scripts or treat an unrelated file with the same name as equivalent. Independent steps fully documented here can proceed within the user’s authorized scope; report any dependent step as unavailable.
Burp Project Parser
Search and extract data from Burp Suite project files using the burpsuite-project-file-parser extension.
When to Use
- Searching response headers or bodies with regex patterns
- Extracting security audit findings from Burp projects
- Dumping proxy history or site map data
- Analyzing HTTP traffic captured in a Burp project file
Prerequisites
This skill delegates parsing to Burp Suite Professional - it does not parse .burp files directly.
Required:
1. Burp Suite Professional - Must be installed ([portswigger.net](https://portswigger.net/burp/pro))
2. burpsuite-project-file-parser extension - Provides CLI functionality
Install the extension:
1. Download from [github.com/BuffaloWill/burpsuite-project-file-parser](https://github.com/BuffaloWill/burpsuite-project-file-parser)
2. In Burp Suite: Extender → Extensions → Add
3. Select the downloaded JAR file
Quick Reference
Use the wrapper script:
{baseDir}/scripts/burp-search.sh /path/to/project.burp [FLAGS]The script uses environment variables for platform compatibility:
BURP_JAVA: Path to Java executableBURP_JAR: Path to burpsuite_pro.jar
See [Platform Configuration](#platform-configuration) for setup instructions.
Sub-Component Filters (USE THESE)
ALWAYS use sub-component filters instead of full dumps. Full proxyHistory or siteMap can return gigabytes of data. Sub-component filters return only what you need.
Available Filters
| Filter | Returns | Typical Size |
|--------|---------|--------------|
| proxyHistory.request.headers | Request line + headers only | Small (< 1KB/record) |
| proxyHistory.request.body | Request body only | Variable |
| proxyHistory.response.headers | Status + headers only | Small (< 1KB/record) |
| proxyHistory.response.body | Response body only | LARGE - avoid |
| siteMap.request.headers | Same as above for site map | Small |
| siteMap.request.body | | Variable |
| siteMap.response.headers | | Small |
| siteMap.response.body | | LARGE - avoid |
Default Approach
Start with headers, not bodies:
# Header subset only; redact cookies, Authorization and other secrets before display
{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 THISOnly fetch bodies for specific URLs after reviewing headers, and ALWAYS truncate:
# 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]")'HARD RULE: Body content > 1000 chars must NEVER enter context. If the user needs full body content, they must view it in Burp Suite's UI.
Regex Search Operations
Search Response Headers
responseHeader='.*regex.*'Searches all response headers. Output: {"url":"...", "header":"..."}
Example - find server signatures:
responseHeader='.*(nginx|Apache|Servlet).*' | head -c 50000Search Response Bodies
responseBody='.*regex.*'MANDATORY: Always truncate body content to 1000 chars max. Response bodies can be megabytes each.
# 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]")'Never retrieve full body content. If you need to see more of a specific response, ask the user to open it in Burp Suite's UI.
Other Operations
Extract Audit Items
auditItemsReturns all security findings. Output includes: name, severity, confidence, host, port, protocol, url.
Note: Audit items can still contain sensitive metadata; bound bytes and redact before display.
Dump Proxy History (AVOID)
proxyHistoryNEVER use this directly. Use sub-component filters instead:
proxyHistory.request.headersproxyHistory.response.headers
Dump Site Map (AVOID)
siteMapNEVER use this directly. Use sub-component filters instead.
Output Limits (REQUIRED)
CRITICAL: Always check result size BEFORE retrieving data. A broad search can return thousands of records, each potentially megabytes. This will overflow the context window.
Step 1: Always Check Size First
Before any search, check BOTH record count AND byte size:
# Check record count AND total bytes - never skip this step
{baseDir}/scripts/burp-search.sh project.burp proxyHistory.request.headers | wc -cl
{baseDir}/scripts/burp-search.sh project.burp "responseHeader='.*Server.*'" | wc -cl
{baseDir}/scripts/burp-search.sh project.burp auditItems | wc -clThe wc -cl output shows: <lines> <bytes> (e.g., 42 524288 means42 newline-delimited records across512KiB).
Interpret the results - BOTH must pass:
| Metric | Safe | Narrow search | Too broad | STOP |
|--------|------|---------------|-----------|------|
| Lines | < 50 | 50-200 | 200+ | 1000+ |
| Bytes | < 50KB | 50-200KB | 200KB+ | 1MB+ |
A single 10MB response on one line will show high byte count but only 1 line - the byte check catches this.
Step 2: Refine Broad Searches
If count/size is too high:
1. Use sub-component filters (see table above):
# Instead of: proxyHistory (gigabytes)
# Use: proxyHistory.request.headers (kilobytes)
2. Narrow regex patterns:
# Too broad (matches everything):
responseHeader='.*'
# Better - target specific headers:
responseHeader='.*X-Frame-Options.*'
responseHeader='.*Content-Security-Policy.*'
3. Filter with jq before retrieving:
# Get only specific content types
{baseDir}/scripts/burp-search.sh project.burp proxyHistory.response.headers | \
jq -c 'select(.url | test("/api/"))' | head -n 50
Step 3: Always Truncate Output
Even after narrowing, always pipe through truncation:
# ALWAYS use head -c to limit total bytes (max 50KB)
{baseDir}/scripts/burp-search.sh project.burp proxyHistory.request.headers | head -c 50000
# For body searches, truncate each JSON object's body field:
{baseDir}/scripts/burp-search.sh project.burp "responseBody='pattern'" | \
head -n 20 | jq -c '.body = (.body | if length > 1000 then .[:1000] + "...[TRUNCATED]" else . end)'
# Limit both record count AND byte size:
{baseDir}/scripts/burp-search.sh project.burp auditItems | head -n 50 | head -c 50000Hard limits to enforce:
head -c 50000(50KB max) on ALL output- Truncate
.bodyfields to 1000 chars - MANDATORY, no exceptions
jq -c '.body = (.body[:1000] + "...[TRUNCATED]")'
Never run these without counting first AND truncating:
proxyHistory/siteMap(full dumps - always use sub-component filters)responseBody='...'searches (bodies can be megabytes each)- Any broad regex like
.*or.+
Investigation Workflow
1. Identify scope - What are you looking for? (specific vuln type, endpoint, header pattern)
2. Search audit items first - Start with Burp's findings:
{baseDir}/scripts/burp-search.sh project.burp auditItems | jq 'select(.severity == "High")'
3. Check confidence scores - Filter for actionable findings:
... | jq 'select(.confidence == "Certain" or .confidence == "Firm")'
4. Extract affected URLs - Get the attack surface:
... | jq -r '.url' | sort -u
5. Search raw traffic for context - Examine actual requests/responses:
{baseDir}/scr… (nội dung đầy đủ có trong gói tải về)
Skill liên quan
- js-secrets-extraction – Phân tích JS bundle và source map để tìm secret được mã hóa cứng, API key, JWT và…
- jwt-attack – Giải mã, giả mạo và brute-force JWT khi thấy header xác thực Bearer.
- helm-chart-builder – Skill và plugin agent phát triển Helm chart cho Claude Code, Codex, Gemini CLI, Cursor…
- meme-coin-audit – Kiểm tra bảo mật meme coin và token — phát hiện rug pull (honeypot, mint ẩn, thao túng…
- changelog-entry – Tạo mục CHANGELOG.md đúng định dạng Keep a Changelog từ khoảng commit hoặc PR. Nhóm thay…
- mid-engagement-ir-detection – Phương pháp phát hiện bản vá SOC của khách hàng, hoạt động tấn công và thay đổi trạng…
- oss-forensics – Điều tra pháp chứng chuỗi cung ứng GitHub: khôi phục, IOC, báo cáo.
- cis-benchmarks – Kiểm tra và khắc phục các vi phạm benchmark CIS.