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
- Open Burp and go to Extender > BApp Store
- Browse or search for extensions
- Click Install — Burp downloads and loads the extension immediately
- 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
- Go to Extender > Extensions > Add
- Select extension type: Python or Java
- Point to your
.pyor.jarfile - 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:
- Go to Scans > Scheduled scans
- Define the target URL and scan configuration
- Set the schedule (daily, weekly, custom cron)
- 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
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. 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?
2. Why would you write a custom scan check instead of using Burp's built-in scanner?
3. What Burp interface would you implement to create a custom active scan check?
4. How can you integrate Burp scans into a CI/CD pipeline?
Flashcards
Question
What is the Burp BApp Store?
Click to reveal answer
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?
Click to reveal answer
Answer
IScannerCheck — provides doActiveScan() and doPassiveScan() methods that Burp calls during scanning.
Question
What is the JWT Editor extension used for?
Click to reveal answer
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?
Click to reveal answer
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?
Click to reveal answer
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.