Configures and runs headless Burp Suite Professional / Enterprise vulnerability scans (a "Burp scan"): Pro drives scans via its local REST API, Enterprise runs CI-driven scans at scale via its server API; supports BApp Store extensions (BCheck, custom scanners) and authenticated targets via session-handling rules; exports issues as HTML / XML / CSV / JSON or SARIF. Use when the team has a Burp Suite license and wants to run a vulnerability scan with Burp - paid-tier dynamic application security testing (DAST) layered on top of OWASP ZAP.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Per portswigger.net/burp/documentation/desktop/automated-scanning, Burp Scanner "is a web vulnerability scanning tool built into Burp Suite Professional" that maps the attack surface and identifies vulnerabilities in web applications and APIs.
How you run it headless depends on your license edition - see Step 1.
For most teams, zap-baseline +
nightvision-dast cover the same
surface without Burp's licensing friction.
Licensing (canonical, referenced elsewhere): Burp Pro is per-user desktop tooling whose headless / unattended use is constrained; Enterprise is "enterprise-enabled" and the intended fit for CI-driven scanning per burp-as. Verify your edition's headless / CI terms before authoring workflows.
Burp Pro: download Burp Suite Pro from portswigger.net/burp/pro; each user activates via license file. Headless invocation requires the Pro license to be valid (license-server activation for multi-user setups).
Burp Enterprise: server-side install per portswigger.net/burp/documentation/enterprise. Requires dedicated infrastructure + DB (MySQL/PostgreSQL).
Burp Pro exposes a REST API (when enabled in User Settings → REST API). Pattern:
# Start a scan via Pro REST API
curl -X POST "http://127.0.0.1:1337/v0.1/scan" \
-H "Content-Type: application/json" \
-d '{
"scope": { "include": [{"rule": "https://app.example.com/.*"}] },
"scan_configurations": [{"name": "Crawl strategy - fastest", "type": "NamedConfiguration"}],
"urls": ["https://app.example.com/"]
}'Returns a task ID. Poll for completion + retrieve issues:
curl http://127.0.0.1:1337/v0.1/scan/<task_id>The REST API surface is documented in Burp's User Settings → REST API → API Documentation tab.
Burp Enterprise stores scan configurations and targets server-side and is the intended fit for CI-driven scanning: a CI script triggers a scan via the Enterprise REST API, polls for completion, downloads issues as JSON, then gates per severity. See references/enterprise-ci.md for the full workflow and a GitHub Actions example.
Per burp-as the "BApp Store" model - extensions distributed via the in-Burp store. Common useful extensions:
For headless / CI use, extensions can be loaded via Burp's extension config (Burp → Extender → Extensions → Add → load .jar / .py / BApp). Enterprise edition manages extension allowlists centrally.
Burp's session handling is rule-based (User Options → Sessions → Session Handling Rules). Each rule defines:
Macros record a multi-step login flow (visit → fill form → submit → assert success). Burp re-runs the macro mid-scan when sessions expire.
For CI/headless use, embed the configured session handling rules in
the project file - Burp re-loads them on --project-file=....
Burp's three suppression mechanisms:
| Mechanism | Where | When to use |
|---|---|---|
| Issue suppression in scan config | Scan config: "Issue types to detect" | Categorical exclusion (e.g., disable SSL/TLS issues for staging-only HTTP) |
| Custom-issue rule (BCheck) | Project: BCheck definition | Per-project pattern (e.g., suppress findings on legacy admin endpoints) |
| Server-side mark-as-FP (Enterprise) | Enterprise dashboard | Persistent + auditable |
| Pro: per-issue notes | Right-click issue → Add note | In-tool only; no audit trail |
Justification template (mandatory in BCheck or Enterprise notes):
# BCheck: suppress SQL injection finding on /search?q=
# Reason: parameter pre-validated via Joi schema (line 42)
# Reviewer: alice@example.com (2026-05-15)
# Expires: 2026-12-15
# Re-review-date: 2026-12-15
given response.body matches "alice|bob|charlie"
then
suppressCadence: Enterprise dashboard's "Resolved as False Positive" filter periodically; review for staleness. Pro requires manual notes audit.
Burp Pro export: Issue → Right-click → Report selected issues → HTML / XML / CSV / Burp's own JSON.
Burp Enterprise REST API returns issues as JSON natively; aggregate it with ZAP + NightVision output for a combined verdict.
For SARIF (GitHub Code Scanning): use the BurpToSarif community
converter (BApp Store).
A team holds a Burp Suite Enterprise license and wants CI-gated coverage of
app.example.com staging, layered on their existing ZAP baseline.
site_id: 42) and a
scan configuration (scan_configuration_id: 7) that skips SSL/TLS issue
types (staging is HTTP-only).status: succeeded, and downloads burp-issues.json./search?q= finding as a false
positive with reviewer + expiry, committed to the repo (Step 6).burp-issues.json, fails on any High severity, and uploads
the SARIF conversion to GitHub Code Scanning (Step 7).Result: every merge to the staging branch runs a licensed Burp scan whose findings sit alongside ZAP and NightVision output in one severity-gated verdict.
| Anti-pattern | Why it fails | Fix |
|---|---|---|
| Burp Pro headless in CI without checking license | License violation; legal risk | Verify Pro license terms; use Enterprise for CI |
| Suppress per-issue note in Pro (no audit trail) | Notes lost in repo migrations | Use BCheck rules (committed to repo) or Enterprise mark-as-FP |
| Skip session handling for authenticated apps | Scanner gets stuck on login; coverage 0% | Configure session handling rules + macro (Step 5) |
| Run Burp scan against production | Active probes corrupt data | Staging only |
| BApp Store extensions without security review | Supply-chain risk | Enterprise extension allowlist |
zap-baseline,
nightvision-dast - sister DAST tools
(use ZAP first; Burp adds layered paid coverage)dast-scan-cadence-author -
build-an-X for layered DAST