Browse the Knowledge Hub211 resources
Burp Suite review: alternatives, pricing and tutorial
Burp Suite is PortSwigger’s toolkit for testing the security of web applications and APIs. An intercepting proxy with a bundled Chromium browser captures traffic, Repeater replays and edits individual requests, and Burp Scanner, in Professional and Burp Suite DAST, crawls and audits automatically. This page covers using it on applications your team owns or is authorised to test, such as a staging environment.
QAble has evaluated this tool and works alongside it. The factual sections are complete; our view is bounded to what we have actually seen rather than a long-term verdict.
- last reviewed
- 13 October 2026
- version covered
- Burp Suite Professional / Community 2026.9.2
- licence
- Freemium
At a glance
Burp Suite at a glance
- Vendor
- PortSwigger
- Category
- Security testing
- Licence
- Freemium
- Platforms
- Windows, macOS, Linux
- Integrates with
- GitHub Actions, Jenkins, GitLab CI, Azure DevOps, TeamCity, BApp Store
- First released
- 2003
- Version reviewed
- Burp Suite Professional / Community 2026.9.2
Verdict
Our verdict on Burp Suite
Strengths
- The bundled Chromium browser is preconfigured for Burp, so HTTPS traffic is captured without proxy or certificate setup
- Repeater turns any captured request into an editable tab with its own history, ideal for confirming a bug and its fix
- Professional’s scanner crawls JavaScript-heavy apps with a browser, replays recorded logins and runs your own BChecks
- Montoya API extensions in Java or Kotlin, plus the BApp Store, add team-specific logic inside Burp
- Burp Suite DAST runs the same scanner engine in a CI container and fails builds on a severity threshold
- Each scanner finding carries the request and response as evidence, so developers can reproduce it
Weaknesses
- Community has no scanner, no project files and only a demo Intruder, so regular use means paying for Professional
- CI-driven scans need a Burp Suite DAST licence; a Professional licence does not cover pipeline scanning
- Professional is licensed per named user, and PortSwigger does not allow one subscription to be shared
- Closed source: scan checks, release cadence and pricing are PortSwigger’s decisions alone
- Active scans send real attack traffic and can create or corrupt data, so they need a disposable target
Our take
Burp Suite is the tool most security specialists reach for when testing a web application by hand, and a QA team gets value from it at two points. Repeater turns a suspicious request into a reproducible check that a developer can rerun after a fix, and Burp Scanner finds known vulnerability classes in an authenticated staging environment. Community is free but deliberately limited: no scanner, no saved projects and an Intruder PortSwigger calls a demo, so it suits learning and manual checks rather than regular scanning. QAble has evaluated Burp rather than maintained a long-running scanning setup on it, so treat this as a bounded take. Two cautions. Pipeline scanning is a separate product, Burp Suite DAST, not a Professional feature. And every scan and replayed request is real traffic, so use Burp only on systems you own or have written permission to test.
We have evaluated this tool rather than maintained a long-running suite on it, so this is a bounded view rather than a long-term verdict. The rest of this page is factual.
How it works
What is Burp Suite and how does it work?
A proxy with its own browser
Burp creates a proxy listener on port 8080 of the loopback interface by default. Open Proxy > Intercept and click Open browser, and Burp launches its bundled Chromium, already configured to send traffic through that listener and to accept Burp’s certificate, so HTTPS is decrypted with no manual setup. Every request and response is recorded in HTTP history, and the Target site map grows as you browse. Intercept pauses a request so you can read or edit it before it leaves. You can use an external browser instead, but that means configuring its proxy and installing Burp’s CA certificate, which is why PortSwigger recommends the bundled one. The browser is updated with Burp itself: 2026.9.2, released on 9 October 2026, moved it to Chromium 154.
Scope decides what Burp touches
Target > Scope holds a list of URL prefixes to include and, beneath them, paths to exclude. Any URL that does not start with an included prefix is out of scope. Advanced scope control replaces prefixes with rules that match protocol, a host regular expression or IP range, a port and a file path. Scope then shapes everything else: history and the site map can show in-scope items only, the proxy can log or intercept in-scope requests only, and the scanner’s live tasks audit in-scope traffic as you browse. PortSwigger’s own guidance lists “you don’t have permission to test” as a reason to exclude a URL. Scope is a project setting, so Professional keeps it in the project file, while Community’s temporary projects lose it when Burp closes.
Manual tools that pass messages between them
The desktop editions are built around moving one message between tools. Right-click a request in history and send it to Repeater to edit and resend it, to Comparer to diff two responses, or to Decoder to unpick an encoded value. Sequencer analyses how random a sample of session tokens is. Intruder sends many variations of one request automatically; in Community it is a demo, and the full version is a Professional feature. Burp Collaborator, which detects out-of-band interactions such as DNS lookups triggered by a request, is Professional only. Bambdas, small scripts run from the interface, filter history tables in both editions, and in Professional add custom columns, match and replace rules and Repeater actions.
Burp Scanner crawls, then audits
Burp Scanner is the automated part, available in Professional and Burp Suite DAST but not Community. A scan crawls first, following links, submitting forms and logging in where it has credentials or a recorded login, using a browser so that JavaScript-built pages are reached. It then audits what it found, sending requests and judging the responses. Each issue has a severity (High, Medium, Low or Information) and a confidence (Certain, Firm or Tentative), and those two values are what CI thresholds and triage work from. Scans are driven by scan configurations: built-in presets such as Crawl and Audit - CICD Optimized and Crawl limit - 10 minutes can be stacked, and custom ones saved. BChecks, small custom check definitions, add tests for problems specific to your own application.
Strengths
What it does well
Repeater for reproducible evidence
Repeater keeps each request in its own tab with a history of every edit and response, supports HTTP and WebSocket messages, and lets you group tabs and send a group in sequence for multi-step flows. For a QA team this is the most useful part of Burp: a security bug report can include the exact request, and the same tab confirms the fix.
Authenticated scanning with recorded logins
Scans can log in with username and password pairs or replay a recorded login sequence saved as JSON, which handles login pages a simple form fill cannot. Without this, a scan of most applications tests the login page and little else, so authentication is the first thing to get right.
API scanning from definitions
Burp Scanner can start from an API definition instead of a crawl: CI-driven scans accept OpenAPI files in JSON or YAML, Postman collections and SOAP WSDLs, with API key, basic or bearer authentication, including tokens fetched and refreshed during the scan. That reaches endpoints no crawler would find from the user interface.
Burp Suite DAST for scheduled and pipeline scans
Burp Suite DAST, renamed from Enterprise Edition on 15 April 2025, runs the Professional scanner engine on a schedule or from CI, either in PortSwigger’s cloud or self-hosted on Windows, Linux or Kubernetes. It adds a dashboard, role-based access, SAML single sign-on and a GraphQL API. Recent releases added persistent issue records with in-place triage, CSV export of issues and an MCP server.
Extensions through the Montoya API
The Montoya API, at version 2026.7, lets a Java or Kotlin extension handle HTTP traffic from every tool, change scope, add tabs and editors, and register custom scan checks. The BApp Store lists published extensions, some of them Professional only. PortSwigger strongly recommends Montoya; the older Extender API is no longer actively maintained.
Burp AI and Burp AT as add-ons
Burp AI adds an assistant to Professional, including explanations and prompts inside Repeater, and is paid for separately. Burp AT, in public beta for Professional users since 27 July 2026, runs agents that use Burp’s own tools within the scope and approval rules Burp enforces. Both are optional and change quickly, so evaluate them separately from the core toolkit.
Pricing
Burp Suite pricing and licensing
Burp Suite has three editions with different models. Community Edition is free and covers manual testing. Professional is an annual subscription for each named user; on 13 October 2026 the Professional page on portswigger.net showed a list price of $499. Burp Suite DAST has no public price: subscriptions are tailored to scanning requirements, chiefly the number of sites, and include unlimited users. Burp AI is a separate paid add-on to Professional.
- Community Edition: free and closed source, with the proxy, Repeater, Decoder, Sequencer, Comparer and a demo Intruder. No scanner, no project files and no Collaborator.
- Professional: an annual subscription per user, at a $499 list price on portswigger.net/burp/pro on 13 October 2026. PortSwigger’s licensing page says one subscription cannot be shared between users, even taking turns, and each installation must be activated.
- Burp Suite DAST: quoted, not listed. Unlimited users, cost rising with the number of sites, cloud or self-hosted, with a pay-as-you-scan option of an annual fee plus hourly scan charges billed monthly. CI-driven scans need this licence.
- Burp AI: an add-on to a Professional licence, sold as a team subscription priced by seats or as self-serve credit packs that expire 12 months after purchase.
- Hidden costs: a disposable staging environment that can absorb active scans, CI runner time, and the engineering time for recorded logins, scope rules and triage.
Checked against the vendor’s own pages on 13 October 2026. Pricing changes; confirm on the official site before buying.
Getting started
Burp Suite tutorial: getting started
Setup, step by step
- Confirm in writing that you may test the target, and use a staging environment your team controls rather than production.
- Download Burp Suite Community or Professional 2026.9.2 from portswigger.net and run the installer; Professional asks for its licence key.
- Start a temporary project, add the staging URL under Target > Scope, and exclude logout, admin and third-party hosts.
- Open Proxy > Intercept, leave interception off for now, and click Open browser to launch Burp’s Chromium.
- Use the feature you are testing, then filter Proxy > HTTP history to in-scope items to find its requests.
- Right-click a request, choose Send to Repeater, edit it and send it again to see how the server responds.
Install
# Installers for Windows, macOS and Linux, plus a JAR:
# Community: https://portswigger.net/burp/communitydownload
# All releases: https://portswigger.net/burp/releasesA first example
# A first Repeater check against your own staging API.
# Captured request, with the session cookie removed before resending:
GET /api/account/orders HTTP/2
Host: staging.example.com
Accept: application/json
# Expected: HTTP/2 401 or 403, with no order data in the body.
# A 200 with data means the endpoint does not enforce login:
# file the bug with this exact request attached, then reuse the
# same Repeater tab to confirm the fix once it is deployed.What trips people up first
Nothing useful in HTTP history. Most first-hour confusion has one of two causes. Testers browse in their everyday browser, which is not proxied through Burp, so nothing is captured; or they configure an external browser but skip Burp’s CA certificate, so HTTPS pages fail with certificate errors. Use Burp’s browser from Proxy > Intercept, which is already configured. Then the opposite problem appears: history fills with analytics, fonts and update checks from other hosts. Add the staging host to Target > Scope, filter history to in-scope items, and set the proxy to log in-scope requests only, which also keeps Repeater and the scanner pointed at the system you are allowed to test.
In practice
Using Burp Suite in practice
Scope files that keep CI scans on your own staging
Write the scope down before any scan runs, and keep it in version control next to the pipeline. For CI-driven scans that file is burp_config.yml: start URLs, extra in-scope prefixes, and out-of-scope prefixes the scanner must never visit, such as logout, destructive admin functions and third-party services like payment providers that you have no permission to test. The same file picks the scan configuration, the recorded login, the report and the threshold that fails the build. Values written as ${NAME} come from environment variables, so the server URL and API key stay in CI secrets. Generate the full commented template from the scan container with --config-template, using the image tag that matches your DAST version, because PortSwigger warns that a template from a different version may not be compatible. Record the written authorisation for each target alongside the file.
# burp_config.yml (repository root). Values here override the action's inputs.
enterpriseServer:
url: ${BURP_ENTERPRISE_SERVER_URL}
apiKey: ${BURP_ENTERPRISE_API_KEY}
site:
scope:
startUrls:
- ${BURP_START_URL} # start URLs are in scope automatically
inScopeUrlPrefixes:
- https://api.staging.example.com/
outOfScopeUrlPrefixes: # never visited by the scanner
- https://staging.example.com/logout
- https://staging.example.com/admin/
- https://checkout.payment-provider.example/
scanConfigurations:
builtIn: # stacked; later entries win on conflicts
- Crawl and Audit - CICD Optimized
- Crawl limit - 10 minutes
logins:
recordedLogins:
- staging-user-login.json # recorded in Burp, saved in the repo root
reporting:
reportFilePath: burp_junit_report.xml
threshold: # defaults are LOW and TENTATIVE
enabled: true
minimumSeverity: MEDIUM
minimumConfidence: FIRMScanning staging from GitHub Actions
PortSwigger’s ci-driven-scan-github-action (v1.0.2) runs Burp Scanner from the enterprise-scan-container image on the CI runner and writes a JUnit XML report. It needs a Burp Suite DAST licence: either a DAST server with an API user holding the CI-driven scan initiator role, or the no-dashboard mode, where you switch the licence to an API key in your PortSwigger account and copy the URL and key from it. By default the container exits non-zero for any issue of Low severity or above, which fails the job, so set the threshold in burp_config.yml and upload the report with if: always(), or a failing scan leaves no report behind. Run the full crawl and audit nightly after the staging deploy rather than on every pull request, and keep the target a variable that can only name your own environments.
# .github/workflows/burp-dast.yml
# Scans the team's own staging environment only.
name: burp-dast
on:
schedule:
- cron: '0 2 * * *' # nightly, after the staging deploy
workflow_dispatch:
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7 # brings burp_config.yml and the login recording
- uses: PortSwigger/[email protected]
with:
enterprise-server-url: ${{ secrets.BURP_DAST_URL }}
enterprise-api-key: ${{ secrets.BURP_DAST_API_KEY }}
start-url: ${{ vars.STAGING_URL }}
- uses: actions/upload-artifact@v7
if: always() # keep the report when the threshold fails the job
with:
name: burp-report
path: burp_junit_report.xmlRepeater as a regression check for security bugs
The most durable habit Burp gives a QA team is treating a security bug like any other: a reproducible request, an expected result and a retest. When a scan or a tester finds something, send the request to Repeater, strip it down to what matters, and name the tab after the ticket. Use tab notes to record what the correct response looks like. When the fix is deployed to staging, resend the same tab and compare the old and new responses in Comparer. Group related tabs, such as the login, the request under test and a cleanup call, and send the group in sequence when the check spans several steps. In Professional, save the project file so these tabs survive between sessions; in Community they are gone when Burp closes, so copy the final request into the ticket as well.
A Montoya extension that marks in-scope traffic
Extensions are the way to encode a team’s conventions. This one sets scope from code and highlights every in-scope request, whichever tool sent it, and logs a warning when Repeater or Intruder sends a request outside scope, a cheap guard against testing the wrong host. Build it as a JAR with montoya-api 2026.7 as a compileOnly dependency, in Gradle or Maven, and load it from the Extensions tab. Set the project’s Java version to 21: PortSwigger’s documentation says Burp only runs extensions written in Java 21 or lower. Burp detects the class that implements BurpExtension automatically. Handlers run on every request, so keep them fast and free of network calls. PortSwigger’s starter project and its examples repository are the quickest way to a working build.
// InScopeTagger.java: Java 21, montoya-api 2026.7 (compileOnly)
import burp.api.montoya.BurpExtension;
import burp.api.montoya.MontoyaApi;
import burp.api.montoya.core.Annotations;
import burp.api.montoya.core.HighlightColor;
import burp.api.montoya.core.ToolType;
import burp.api.montoya.http.handler.*;
public class InScopeTagger implements BurpExtension {
@Override
public void initialize(MontoyaApi api) {
api.extension().setName("In-scope tagger");
// Scope can be set from code as well as from Target > Scope
api.scope().includeInScope("https://staging.example.com/");
api.scope().excludeFromScope("https://staging.example.com/logout");
api.http().registerHttpHandler(new HttpHandler() {
@Override
public RequestToBeSentAction handleHttpRequestToBeSent(HttpRequestToBeSent req) {
Annotations notes = req.annotations();
if (req.isInScope()) {
notes = notes.withHighlightColor(HighlightColor.GREEN)
.withNotes("in scope, via " + req.toolSource().toolType().name());
} else if (req.toolSource().isFromTool(ToolType.REPEATER, ToolType.INTRUDER)) {
api.logging().logToError("Out-of-scope request: " + req.url());
}
return RequestToBeSentAction.continueWith(req, notes);
}
@Override
public ResponseReceivedAction handleHttpResponseReceived(HttpResponseReceived res) {
return ResponseReceivedAction.continueWith(res);
}
});
}
}Reporting, triage and keeping findings useful
A scan is only useful if someone acts on it. In Professional, review each issue’s evidence in the request and response before reporting it, since confidence describes how reliable the detection technique is, not proof; PortSwigger advises confirming reported issues manually. Mark the ones that do not apply as false positives, then generate an HTML report for some or all issues, grouped by type, severity or URL, or export XML, whose per-issue serial numbers help spot new findings across repeated exports. In CI, the JUnit report feeds any test-results viewer, and ignoredIssues in burp_config.yml stops a specific issue on specific paths from failing the build while still recording it. Prefer narrow ignores over raising the threshold. In Burp Suite DAST, triage decisions persist across scans and, from DAST 2026.10, apply to matching issues, which keeps nightly results from resurfacing the same accepted risk.
Pitfalls
Common pitfalls
Scanning or replaying requests against systems you are not authorised to test
Why it happens: Active scans and Intruder send real attack traffic, and even Repeater requests are real. Pointed at production, a shared environment or a third-party service, they can corrupt data, trigger alerts and breach contracts or law.
The fix: Get written authorisation for every target, test a disposable staging copy, exclude third-party hosts in scope settings and burp_config.yml, and restrict proxy logging and interception to in-scope items.
Assuming Professional covers pipeline scanning
Why it happens: Professional is a desktop licence for one person. The CI-driven scan action and its container authenticate against a Burp Suite DAST server or a DAST licence switched to an API key.
The fix: Budget for Burp Suite DAST if scans must run in CI, or keep Professional for manual testing and run a free scanner such as ZAP in the pipeline.
Following tutorials for Dastardly or Enterprise Edition
Why it happens: Enterprise Edition was renamed Burp Suite DAST in April 2025, and Dastardly’s pages on portswigger.net now redirect to the DAST CI/CD documentation, with 2024.2 its newest release note. Older guides describe both as current.
The fix: Translate Enterprise Edition to Burp Suite DAST when reading old guides, and build new pipelines on the CI-driven scan action rather than the Dastardly action.
A threshold that fails every build, or none
Why it happens: The CI container’s default threshold is Low severity and Tentative confidence, so most real applications fail on the first run, and teams respond by disabling the threshold altogether.
The fix: Set minimumSeverity and minimumConfidence deliberately, record accepted findings as narrow ignoredIssues entries, and keep the threshold enabled.
Unauthenticated scans reported as coverage
Why it happens: Without credentials or a recorded login the crawler sees public pages and the login form, so the report looks complete while most of the application went untested.
The fix: Add a recorded login or credentials, check the crawled URLs for pages that need a session, and treat a sudden drop in crawled URLs as a broken login.
Extensions built with the legacy API or a newer Java
Why it happens: Many examples online use the Extender API, which PortSwigger no longer actively maintains, and Burp only runs extensions written in Java 21 or lower, so a project set to a newer JDK fails to load.
The fix: Start from PortSwigger’s starter project or the Montoya examples repository, depend on montoya-api 2026.7 as compileOnly, and set the project’s Java version to 21.
Treating a clean scan as proof of security
Why it happens: A scanner finds known vulnerability classes. It cannot judge business logic, whether one user can see another’s data, or flaws that need several steps, which are often the most serious.
The fix: Use Burp Scanner as a regression net, write Repeater checks for access rules your team knows matter, and keep periodic manual testing by security specialists.
Compared
Burp Suite alternatives compared
| Tool | Approach | Licence and cost | Automated scanner | Manual testing tools | CI automation |
|---|---|---|---|---|---|
| Burp Suite | Dynamic, against a running application | Free Community; paid Professional per user | Professional and DAST only | Proxy, Repeater, Intruder, Comparer, Collaborator | Burp Suite DAST CI-driven Docker scans |
| OWASP ZAP | Dynamic, against a running application | Apache 2.0, free | Passive and active, free | Proxy, breakpoints, fuzzer, HUD | Docker scans, YAML plans, GitHub Actions |
| SonarQube | Static analysis of source code | Free Community Build; paid editions by LOC | Code analysis, not attack traffic | None | Scanner in CI with quality gates |
FAQ
Frequently asked questions
What is Burp Suite?
Burp Suite is PortSwigger’s toolkit for testing the security of web applications and APIs. An intercepting proxy with a bundled Chromium browser captures traffic, Repeater replays and edits individual requests, and Burp Scanner, in Professional and Burp Suite DAST, crawls and audits automatically. This page covers using it on applications your team owns or is authorised to test, such as a staging environment.
What are the best Burp Suite alternatives?
The alternatives most often weighed against Burp Suite are OWASP ZAP and SonarQube. The comparison on this page sets them side by side on approach, licence and cost, automated scanner, manual testing tools and ci automation, and the verdict above says where Burp Suite is the wrong choice and which of them to pick instead.
Is Burp Suite free?
Burp Suite Community Edition is free. It includes the proxy and HTTP history, Repeater, Decoder, Sequencer, Comparer and a demo version of Intruder, which makes it good for learning and for manual checks. It has no scanner, cannot save project files and lacks Collaborator. Burp Suite Professional is a paid annual subscription per user, and Burp Suite DAST, the automated scanning product, is priced on request.
Burp Suite or ZAP: which should a QA team use?
Often both. ZAP is free under Apache 2.0, includes its scanner and is built to run unattended, so it is the usual choice for automated scans in a pipeline. Burp Suite Professional is the more common tool for manual security testing, with Repeater and Collaborator as its strengths, and its scanner is paid. A practical split is ZAP in CI and Burp for manual checks, with Burp Suite DAST considered when budget allows.
Can I run Burp Suite in a CI pipeline?
Yes, through Burp Suite DAST rather than Professional. CI-driven scans run Burp Scanner from PortSwigger’s scan container on your CI agent and write a JUnit or Burp XML report. You can send results to a DAST dashboard, or use the no-dashboard mode, where your licence is switched to an API key. PortSwigger provides a GitHub Action, and the container works on any CI platform that runs Docker.
What happened to Dastardly and Burp Suite Enterprise Edition?
Enterprise Edition was renamed Burp Suite DAST on 15 April 2025; PortSwigger said features and licensing did not change, and old enterprise URLs now redirect to DAST pages. Dastardly, PortSwigger’s free lightweight CI scanner, is no longer presented as a product: its pages redirect to the DAST CI/CD documentation and its last release note is 2024.2. For new pipelines, use the CI-driven scan action.
Do I need permission to scan with Burp Suite?
Yes. Scans, Intruder runs and replayed requests are real traffic, and active scanning sends attack payloads that can change or delete data. Test only applications your organisation owns, or that their owner has authorised you in writing to test, and prefer a staging copy with disposable data. Configure scope so Burp cannot reach third-party services, such as payment or analytics providers, that sit outside that permission.
Which Burp Suite version is current?
Professional and Community share version numbers. On 13 October 2026 the newest stable release was 2026.9.2, published on 9 October 2026, which upgraded Burp’s browser to Chromium 154. 2026.10, released on 12 October 2026, is an Early Adopter build that reintroduces HTTP Digest authentication and fixes bugs. Burp Suite DAST has its own versions; DAST 2026.10 shipped on 8 October 2026.
What are Burp AI and Burp AT?
Burp AI is an AI assistant built into Burp Suite Professional, sold as an add-on: a team subscription priced by seats, or credit packs that expire 12 months after purchase. Burp AT is PortSwigger’s agentic feature, launched in public beta for Professional users on 27 July 2026, where agents use Burp’s tools inside the scope and approval rules Burp enforces, with the tester keeping control of conclusions.
What language are Burp extensions written in?
PortSwigger recommends Java with the Montoya API, currently 2026.7, and Kotlin compiled to a JAR loads the same way. Burp only runs extensions written in Java 21 or lower. Python, through Jython, and Ruby, through JRuby, are possible only with the legacy Extender API, which is no longer actively maintained, so new extensions should use Montoya.
Alternatives
Burp Suite alternatives worth weighing
Resources
Where to go next
Keep going
Prepare, or get it done
Picking the wrong tool costs more than picking late.
QAble advises on toolchain decisions and then implements them, with engineers who have run these tools on real delivery. Start with a free QA audit.