Skip to content
advanced Phase 10 · Web Testing with Burp Suite

Burp Extensions and Automation

Extend Burp with extensions and schedule repeatable scan runs.

50m
0 problems
Topic Progress 0%

BApp Store and Extension Ecosystem

What the BApp Store Provides

The Burp Suite BApp Store is a marketplace of extensions that add functionality to Burp. Extensions are written in Java, Python (Jython), or Ruby (JRuby) and integrate directly into Burp's interface. They can add new scan checks, modify requests/responses, add UI panels, or integrate with external tools.

Installing Extensions

  1. Open Burp and go to Extender > BApp Store
  2. Browse or search for extensions
  3. Click Install — Burp downloads and loads the extension immediately
  4. Installed extensions appear in the Extender > Extensions tab

Essential Extensions for Web Testing

JWT Editor — Parses and modifies JWT tokens directly in Burp. You can edit claims, sign with custom keys, and test for algorithm confusion attacks. Essential for testing JWT-based authentication.

Autorize — Tests authorization automatically. You define access levels (e.g., admin user, regular user) and Autorize replays each request with different session cookies to detect authorization bypasses.

Param Miner — Discovers hidden parameters by fuzzing headers, cookies, and query strings. Hidden parameters often reveal debug features, internal APIs, or undocumented functionality.

Logger++ — Advanced logging and filtering. Logs all Burp traffic to a searchable database with powerful filter expressions. Essential for analyzing large amounts of traffic.

Turbo Intruder — High-performance fuzzing engine. Sends thousands of requests per second for brute-force attacks that would be too slow with standard Intruder.

Backslash Powered Scanner — Fuzzes parameter values with specially crafted payloads designed to trigger error messages that reveal the backend technology and version.

Managing Extensions

In Extender > Extensions, you can:

  • Enable/disable extensions
  • Configure extension-specific options
  • View extension output and errors
  • Uninstall extensions

Extensions can slow down Burp or cause instability. If Burp becomes unresponsive, disable extensions one by one to identify the culprit.

Writing Custom Scan Checks

Why Custom Scan Checks Matter

Burp's built-in scanner detects common vulnerabilities (SQLi, XSS, etc.) but cannot find application-specific logic flaws. For example, if your application has a pricing calculation bug where negative quantities result in account credit, no built-in scanner will find that. Custom scan checks let you test for these unique vulnerabilities.

Extension Development Basics

Burp extensions implement specific interfaces:

  • IScannerCheck — For custom passive and active scan checks
  • IHttpListener — For processing every HTTP request/response
  • IContextMenuFactory — For adding right-click menu items
  • ITab — For adding custom tabs to Burp's UI

Example: Custom Active Scan Check in Python (Jython)

from burp import IScannerCheck
from burp import IScanIssue
import array

class BurpExtender(IScannerCheck):
    def doActiveScan(self, baseRequestResponse, insertionPoint):
        # Test for negative quantity in pricing
        payload = b"-1"
        checkRequest = insertionPoint.buildRequest(payload)
        checkResponse = self._callbacks.makeHttpRequest(
            baseRequestResponse.getHttpService(), checkRequest
        )
        
        response = checkResponse.getResponse()
        responseStr = self._helpers.bytesToString(response)
        
        if b"credit" in responseStr.lower() or b"refund" in responseStr.lower():
            return [CustomScanIssue(
                baseRequestResponse.getHttpService(),
                self._helpers.analyzeRequest(baseRequestResponse).getUrl(),
                [checkResponse],
                "Negative Quantity Exploit",
                "The application accepts negative quantities and applies account credit.",
                "High"
            )]
        return None

Loading Custom Extensions

  1. Go to Extender > Extensions > Add
  2. Select extension type: Python or Java
  3. Point to your .py or .jar file
  4. Burp loads the extension and displays any errors in the Output tab

Practical Use Cases for Custom Checks

  • Business logic testing — Test for pricing manipulation, coupon abuse, or workflow bypass
  • Custom authentication — Test for flaws in proprietary authentication schemes
  • API-specific vulnerabilities — Test for GraphQL injection, REST API versioning issues
  • Data validation — Test for application-specific input validation flaws

Debugging Extensions

Use print() statements in Python extensions or System.out.println() in Java. Output appears in Extender > Extensions > Output. For more complex debugging, use Burp's callbacks.printError() for error messages that appear in the Errors tab.

Automation and REST API Integration

Burp's Automation Capabilities

Burp Suite Enterprise and Burp Suite Professional (with extensions) support automated scanning workflows. These allow you to:

  • Schedule recurring scans against staging environments
  • Run authenticated scans with predefined session handling
  • Integrate with CI/CD pipelines for continuous security testing
  • Generate reports automatically after each scan

Burp REST API

Burp Suite Enterprise exposes a REST API that lets you control Burp programmatically:

# Start a scan
curl -X POST "https://burp.example.com/api/v1/scans" \
  -H "Authorization: Bearer $API_KEY" \
  -d '{"urls": ["https://staging.example.com"], "scope": {"include": [{"prefix": "https://staging.example.com"}]}}'

# Get scan status
curl "https://burp.example.com/api/v1/scans/$SCAN_ID" \
  -H "Authorization: Bearer $API_KEY"

# Get scan results
curl "https://burp.example.com/api/v1/scans/$SCAN_ID/issues" \
  -H "Authorization: Bearer $API_KEY"

CI/CD Integration

Integrate Burp scans into your deployment pipeline:

# Example GitHub Actions workflow
- name: Run Burp Scan
  run: |
    curl -X POST "$BURP_URL/api/v1/scans" \
      -H "Authorization: Bearer $BURP_API_KEY" \
      -d '{"urls": ["https://staging.example.com"]}'
    # Wait for scan completion
    # Fail build if high-severity issues found

Scheduled Scans

In Burp Suite Enterprise, configure scheduled scans:

  1. Go to Scans > Scheduled scans
  2. Define the target URL and scan configuration
  3. Set the schedule (daily, weekly, custom cron)
  4. Configure notification emails for completed scans

Scheduled scans run automatically against staging environments, catching regressions before they reach production.

Reporting Automation

Burp can generate reports in multiple formats (HTML, XML, JSON). Automate report generation:

  • After each scheduled scan, generate a PDF report
  • Email the report to the security team
  • Upload findings to a vulnerability management platform (e.g., DefectDojo, Jira)

Practical Tip: Scan Configuration as Code

Store your Burp scan configurations in version control:

{
  "scan_name": "Staging Weekly Scan",
  "urls": ["https://staging.example.com"],
  "scope": {
    "include": [{"prefix": "https://staging.example.com"}]
  },
  "scan_type": "active",
  "max_crawl_depth": 10,
  "session_handling": {
    "login_url": "https://staging.example.com/login",
    "credentials": {"username": "testuser", "password": "testpass"}
  }
}

This makes scan configurations reproducible and reviewable in pull requests.

Practice Problems

0 / 2 solved
Install and Configure JWT Editor Extension

You are testing a JWT-based authentication system. Describe how you would install and use the JWT Editor extension in Burp to test for JWT vulnerabilities.

Solution
1. Go to Extender > BApp Store and search for 'JWT Editor.' 2. Click Install. 3. When you capture a request with a JWT token in Burp Proxy, the JWT Editor tab appears automatically. 4. The extension parses the JWT into header, payload, and signature sections. 5. Test for algorithm confusion: change the algorithm to 'none' and remove the signature. 6. Test for weak signing keys: use a wordlist to brute-force the HMAC secret. 7. Test for claim manipulation: change 'role' to 'admin' and re-sign if you have the key.
Write a Custom Scan Check for Business Logic

Your application has a coupon code feature where entering a coupon reduces the order total. You want to test if the same coupon can be applied multiple times. Describe how you would write a custom Burp extension to test this.

Solution
1. Implement IScannerCheck interface. 2. In doActiveScan, take the base request and modify the coupon parameter to the same value multiple times. 3. Send the modified request and analyze the response. 4. If the response shows the discount applied multiple times (total reduced by more than the coupon value), report a finding. 5. Load the extension via Extender > Extensions > Add > Python. 6. Run an active scan and review the custom findings in the Scanner results.

Quiz

1. What is the primary purpose of the Burp BApp Store?

Question 1 options

2. Why would you write a custom scan check instead of using Burp's built-in scanner?

Question 2 options

3. What Burp interface would you implement to create a custom active scan check?

Question 3 options

4. How can you integrate Burp scans into a CI/CD pipeline?

Question 4 options

Flashcards

Question

What is the Burp BApp Store?

Answer

A marketplace of extensions that add functionality to Burp — new scan checks, UI modifications, external tool integrations, and specialized testing capabilities.

Question

What Burp interface do you implement for a custom active scan check?

Answer

IScannerCheck — provides doActiveScan() and doPassiveScan() methods that Burp calls during scanning.

Question

What is the JWT Editor extension used for?

Answer

Parsing and modifying JWT tokens in Burp. Used to test for algorithm confusion, weak signing keys, and claim manipulation.

Question

How do you integrate Burp with CI/CD pipelines?

Answer

Using Burp's REST API to programmatically start scans, check status, and retrieve results via HTTP requests from CI/CD tools.

Question

What are some essential Burp extensions for web testing?

Answer

JWT Editor (JWT testing), Autorize (authorization testing), Param Miner (hidden parameter discovery), Logger++ (advanced logging), Turbo Intruder (high-speed fuzzing).

Revision Notes

Key Takeaways

  • 1. BApp Store provides extensions for JWT testing, authorization testing, parameter discovery, and more
  • 2. Custom scan checks (IScannerCheck interface) test for application-specific business logic flaws
  • 3. Burp's REST API enables CI/CD integration for automated security testing
  • 4. Scheduled scans against staging catch regressions before production
  • 5. Extensions can be written in Python (Jython) or Java

Interview Tips

  • • Describe a custom scan check you wrote and the business logic flaw it detected
  • • Explain how you integrated Burp into a CI/CD pipeline using the REST API
  • • Discuss which BApp Store extensions you use regularly and why
  • • Mention how you handle complex authentication flows in automated scans

Cheat Sheet

Burp Extensions and Automation Cheat Sheet

Phase: Web Testing with Burp Suite | Level: advanced

BApp Store:

  • Extender > BApp Store > Browse > Install
  • Essential: JWT Editor, Autorize, Param Miner, Logger++, Turbo Intruder

Custom Extensions:

  • Implement IScannerCheck for custom scan checks
  • Python (Jython) or Java
  • Load via Extender > Extensions > Add
  • Debug output in Extender > Extensions > Output

Automation:

  • Burp REST API for programmatic control
  • Scheduled scans against staging
  • CI/CD integration via API
  • Report generation and distribution

REST API Example:

curl -X POST "https://burp.example.com/api/v1/scans" \
  -H "Authorization: Bearer $API_KEY" \
  -d '{"urls": ["https://staging.example.com"]}'

Tags: burp-suite, automation

Continue Learning

Before You Start

  • No prerequisites listed.