Comprehensive Burp Module
Powerful skill for skill, should, used, user. Includes structured workflows, validation checks, and reusable patterns for security.
Comprehensive Burp Module
Master Burp Suite Professional for web application security testing, covering proxy configuration, scanner usage, Intruder attacks, Repeater analysis, extension development, and automated vulnerability assessment within authorized penetration testing engagements.
When to Use This Skill
Choose Comprehensive Burp Module when you need to:
- Intercept and modify HTTP/HTTPS traffic for web application testing
- Run automated vulnerability scans against web applications
- Perform targeted attacks (brute force, parameter fuzzing) with Intruder
- Develop custom Burp extensions for specialized testing workflows
Consider alternatives when:
- You need a free/open-source alternative (use OWASP ZAP)
- You need API-only testing without browser interaction (use API Fuzzing tools)
- You need static code analysis (use Semgrep or SonarQube)
Quick Start
# Burp Suite installation (requires Java 17+) # Download from portswigger.net (Professional or Community) # Configure browser proxy: 127.0.0.1:8080 # Install Burp CA certificate for HTTPS interception # Python script to proxy through Burp import requests proxies = { "http": "http://127.0.0.1:8080", "https": "http://127.0.0.1:8080", } # Route all requests through Burp for inspection response = requests.get( "https://target.example.com/api/users", proxies=proxies, verify=False, # Required for Burp's CA headers={"Authorization": "Bearer TOKEN"} ) print(f"Status: {response.status_code}") print(f"Check Burp Proxy history for full request/response")
Core Concepts
Burp Suite Tools
| Tool | Purpose | Key Feature |
|---|---|---|
| Proxy | Intercept HTTP/HTTPS traffic | Modify requests/responses in real-time |
| Scanner | Automated vulnerability scanning | Crawl + audit with passive/active checks |
| Intruder | Automated custom attacks | Payload positions, wordlists, grep-match |
| Repeater | Manual request manipulation | Edit and resend individual requests |
| Sequencer | Token randomness analysis | Entropy and statistical analysis |
| Decoder | Data encoding/decoding | URL, Base64, HTML, hex conversion |
| Comparer | Diff two responses | Find subtle differences in responses |
| Extender | Add custom functionality | BApp store + custom extensions |
Intruder Attack Configuration
# Burp Intruder equivalent using Python # (for automated testing when Burp isn't available) import requests import time from concurrent.futures import ThreadPoolExecutor class IntruderClone: """Simplified Burp Intruder-style attack tool.""" def __init__(self, target_url, proxy=None): self.target = target_url self.proxy = {"http": proxy, "https": proxy} if proxy else None self.results = [] def sniper_attack(self, request_template, position, payloads, headers=None): """Single payload position attack (Burp Sniper mode).""" for payload in payloads: url = request_template.replace(f"§{position}§", payload) try: resp = requests.get( url, headers=headers, proxies=self.proxy, verify=False, timeout=10 ) result = { 'payload': payload, 'status': resp.status_code, 'length': len(resp.content), 'time': resp.elapsed.total_seconds(), } # Grep match if 'error' in resp.text.lower(): result['grep'] = 'error_found' if 'admin' in resp.text.lower(): result['grep'] = 'admin_reference' self.results.append(result) except Exception as e: self.results.append({'payload': payload, 'error': str(e)}) return self.results def cluster_bomb(self, url, params, payload_sets, method='GET', headers=None): """Multiple payload positions attack (Burp Cluster Bomb mode).""" from itertools import product combinations = list(product(*payload_sets.values())) param_names = list(payload_sets.keys()) for combo in combinations: test_params = dict(zip(param_names, combo)) try: if method == 'GET': resp = requests.get(url, params=test_params, headers=headers, proxies=self.proxy, verify=False, timeout=10) else: resp = requests.post(url, json=test_params, headers=headers, proxies=self.proxy, verify=False, timeout=10) self.results.append({ 'params': test_params, 'status': resp.status_code, 'length': len(resp.content), }) except Exception: pass return self.results # Usage (authorized testing only) # intruder = IntruderClone("https://target.example.com") # results = intruder.sniper_attack( # "https://target.example.com/api/users/§id§", # "id", # [str(i) for i in range(1, 100)] # )
Configuration
| Parameter | Description | Default |
|---|---|---|
proxy_port | Burp proxy listener port | 8080 |
proxy_interface | Listener interface | 127.0.0.1 |
scope | Target scope (domains/paths) | Must be defined |
scan_speed | Scanner speed (fast/normal/thorough) | "normal" |
scan_type | Active/passive scanning | "active" |
intruder_threads | Concurrent Intruder threads | 5 |
intruder_payloads | Attack payload configuration | Wordlist-dependent |
follow_redirects | Follow redirections in Repeater | true |
Best Practices
-
Define scope before scanning — Add target domains to Burp's scope and configure the scanner to only test in-scope items. Out-of-scope requests can test third-party services you're not authorized to assess, creating legal and ethical issues.
-
Start with passive scanning, then targeted active scans — Passive scanning analyzes traffic you've already captured without sending additional requests. This identifies issues without impacting the application. Use active scanning selectively on specific endpoints rather than the entire site.
-
Use Intruder's grep-match to filter results — Define strings to search for in responses (error messages, admin references, SQL syntax) and use Burp's grep-match columns to highlight potentially interesting responses. This is far more efficient than manually reviewing hundreds of responses.
-
Save and organize your Burp project files — Use Burp's project file format to save all proxy history, scanner findings, and Intruder results. Label interesting requests with comments and highlights. This creates an audit trail and makes report writing more efficient.
-
Use Sequencer to validate token randomness — Capture 10,000+ session tokens and feed them to Burp Sequencer for statistical analysis. It tests for bit-level patterns, character-level predictability, and FIPS compliance. Low-entropy tokens indicate a critical vulnerability.
Common Issues
HTTPS interception fails with certificate errors — Install Burp's CA certificate in your browser and OS trust store. For mobile app testing, pin the Burp CA in the app or use tools like Frida/Objection to bypass certificate pinning. Some apps use custom certificate stores that require additional configuration.
Scanner misses vulnerabilities that manual testing finds — Automated scanners can't understand business logic, authentication flows, or multi-step vulnerabilities. Use the scanner for technical issues (XSS, SQLi, CSRF) and manual testing for logic flaws (IDOR, authorization bypass, race conditions).
Intruder is too slow with large payload lists — Burp Community Edition throttles Intruder speed. Professional Edition is faster but still limited by network latency. For very large fuzzing campaigns (>100K payloads), use purpose-built tools like ffuf or custom Python scripts and proxy the traffic through Burp for inspection.
Reviews
No reviews yet. Be the first to review this template!
Similar Templates
Full-Stack Code Reviewer
Comprehensive code review skill that checks for security vulnerabilities, performance issues, accessibility, and best practices across frontend and backend code.
Test Suite Generator
Generates comprehensive test suites with unit tests, integration tests, and edge cases. Supports Jest, Vitest, Pytest, and Go testing.
Pro Architecture Workspace
Battle-tested skill for architectural, decision, making, framework. Includes structured workflows, validation checks, and reusable patterns for development.