View all services
Talk to QA Advisor
Browse the Knowledge Hub211 resources
/Tools Library/Burp Suite
Tools Library · Review and guide

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

Reviewed by Viral Patel

Co-Founder, QAbleLast reviewed 13 October 2026

At a glance

Burp Suite at a glance

Official site
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

  1. Confirm in writing that you may test the target, and use a staging environment your team controls rather than production.
  2. Download Burp Suite Community or Professional 2026.9.2 from portswigger.net and run the installer; Professional asks for its licence key.
  3. Start a temporary project, add the staging URL under Target > Scope, and exclude logout, admin and third-party hosts.
  4. Open Proxy > Intercept, leave interception off for now, and click Open browser to launch Burp’s Chromium.
  5. Use the feature you are testing, then filter Proxy > HTTP history to in-scope items to find its requests.
  6. 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/releases

A 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: FIRM

Scanning 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.xml

Repeater 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

ToolApproachLicence and costAutomated scannerManual testing toolsCI automation
Burp SuiteDynamic, against a running applicationFree Community; paid Professional per userProfessional and DAST onlyProxy, Repeater, Intruder, Comparer, CollaboratorBurp Suite DAST CI-driven Docker scans
OWASP ZAPDynamic, against a running applicationApache 2.0, freePassive and active, freeProxy, breakpoints, fuzzer, HUDDocker scans, YAML plans, GitHub Actions
SonarQubeStatic analysis of source codeFree Community Build; paid editions by LOCCode analysis, not attack trafficNoneScanner 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

Ready

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.

Talk to QA Advisor