Burp Suite Overview
Burp Suite is the de-facto toolkit for web application security testing. Itβs a proxy-based platform that lets you intercept, inspect, and modify HTTP(S) traffic between your browser and a web app, then run scanners, brute-force attacks, and targeted manipulations to find vulnerabilities.
There are two common editions:
- Community (Free) β great for learning and manual testing (no automated scanner or Collaborator features).
- Professional (Paid) β adds an automated scanner, Burp Collaborator, advanced Intruder features, and many productivity improvements.
This guide focuses on practical usage: how to set up Burp, the core workflow, useful modules, and safe labs you can run in a controlled environment.
Installation & Quick Setupβ
- Download from: https://portswigger.net/burp
- Java is included in the installer for recent versions, but verify requirements on the download page.
- Start Burp:
java -jar burpsuite_pro.jar # or run the installer/binary for your OS
Configure your browser to use Burp as a proxyβ
By default Burp listens on 127.0.0.1:8080.
-
Set your browserβs HTTP & HTTPS proxy to:
- Host:
127.0.0.1 - Port:
8080
- Host:
-
Install Burpβs CA certificate in the browser to view/decrypt HTTPS traffic:
- In browser visit:
http://burp(while Burp is running) β CA Certificate β download and import as trusted.
- In browser visit:
Use a dedicated testing browser profile (or a temporary profile) so you donβt risk trusting the Burp CA on your daily browser.
Core Workflow (Proxy β Inspect β Test)β
-
Proxy (Intercept)
- Route browser traffic through Burp Proxy.
- Intercept requests/responses, modify them on the fly, or forward them to the server.
- Useful for understanding request structure, cookies, headers, and parameters.
-
Target & Site Map
- Burp records all discovered endpoints in the Target β Site map.
- Use this to enumerate the application surface and find interesting pages or hidden endpoints.
-
Scanner (Pro)
- Automatic active and passive scanning of requests to find common vulnerabilities (SQLi, XSS, CSRF issues, etc.).
- Use scan findings as pointers β manual verification and context-aware analysis are crucial.
-
Repeater
- Send a single request to Repeater and manually tweak values, headers, or payloads to observe responses.
- Ideal for iterative testing of inputs and attack payloads.
-
Intruder
- Automate input fuzzing, brute force, or parameter enumeration by defining positions and payload sets.
- Extremely powerful but noisy; use carefully and with permission. (Community edition has limited speed and functionality.)
-
Sequencer
- Analyze randomness of session tokens or anti-CSRF tokens to check for predictability.
-
Extender / BApp Store
- Install extensions (BApps) to add features β common picks: Autorize, ActiveScan++, Logger++, Retire.js.
- You can write custom extensions in Java, Python (Jython), or JavaScript.
Key Tools & When to Use Themβ
Proxy (Intercept)β
- Use to examine raw HTTP(S) requests and responses.
- Great for learning how inputs map to server behavior.
- Example: Intercept a login request and change
username=aliceβusername=adminto test authorization checks (only in-scope/authorized tests).
Repeaterβ
- Manual, iterative testing of a single request.
- Example: Re-send POST requests with modified JSON payloads to test input validation.
Intruderβ
-
Automate injection of payload lists (wordlists, fuzzing sets).
-
Use cases: brute-forcing form fields, testing enumeration, header fuzzing.
-
Example payload positions:
POST /login HTTP/1.1
username=Β§USERΒ§&password=Β§PASSΒ§
Scanner (Pro)β
- Automated vulnerability discovery. Good starting point but always validate findings manually.
- Configure scan policies β tune for speed vs subtlety on staging environments.
Sequencerβ
- Paste a set of tokens and check entropy/statistics to assess randomness and predictability.
Comparer & Decoderβ
- Comparer: diff two responses to spot subtle changes.
- Decoder: quickly encode/decode URL, Base64, HTML entities, etc.
Practical Examples & Short Recipesβ
Intercept & Modify a Requestβ
- Set browser proxy to Burp and enable Intercept.
- Trigger a web action (e.g., submit form).
- In Burp, edit the request (change form fields, headers) and forward.
- Observe the server response in the Response tab.
Manual SQL Injection Testing with Repeaterβ
-
Find a form or parameter that accepts input.
-
Send request to Repeater.
-
Try payloads like:
' OR '1'='1
' UNION SELECT NULL, version() -- -
Observe response differences and error messages for injection signs.
Brute Force a Parameter with Intruder (lab only)β
- Send a login POST to Intruder β Positions.
- Clear auto positions; mark username field position.
- Select Payloads β load a username list (e.g., common users).
- Start attack (monitor response lengths, status codes).
- Validate any "hits" manually.
Burp Extensions & Automationβ
The Burp BApp Store extends functionality. Popular extensions:
- Logger++ β advanced request/response logging.
- Autorize β automated access control testing.
- ActiveScan++ β enhanced scanning checks.
- Retire.js β JS library vulnerability detection.
You can also use Burpβs REST API (in Pro) to automate tasks and integrate with CI/CD for scanning staging apps.
Safe Testing Practices & Ethicsβ
- Only test in-scope targets β never unauthorized systems.
- Use staging or local labs for intrusive tests.
- Limit impact: avoid destructive payloads unless explicitly authorized.
- Record evidence: save requests, responses, timestamps for reporting and remediation.
- Coordinate with ops/dev teams: schedule tests to avoid business disruption.
Hands-On Labsβ
Lab 1 β Intercept & Inspectβ
-
Environment: a local vulnerable app (DVWA, WebGoat, or Juice Shop).
-
Goal: Intercept a login request, modify parameters, and observe server behavior.
-
Steps:
- Configure browser proxy and install Burp CA.
- Log into the app with a test account while intercept is on.
- Modify a parameter and forward; document server response.
Lab 2 β Repeater XSS Testingβ
-
Environment: DVWA (stored XSS lab).
-
Goal: Manually craft payloads in Repeater to test reflected & stored XSS vectors.
-
Steps:
- Identify input and send to Repeater.
- Test payloads like
<script>alert(1)</script>and encoded variants. - Observe output and use Decoder to craft safe encodings.
Lab 3 β Intruder Fuzzing (Controlled)β
-
Environment: Local staging app with a non-critical admin login.
-
Goal: Use Intruder to fuzz headers or parameters to find input validation issues.
-
Steps:
- Send request to Intruder, pick parameter positions.
- Load a relevant payload list (e.g., common XSS payloads).
- Run attack at slow speed and inspect anomalies.
Reporting & Evidenceβ
Good findings include:
- Full intercepted request/response pairs (saved as Burp items or exported).
- Exact steps to reproduce and the tool/module used (e.g., Repeater, Intruder, Scanner).
- Impact assessment (data exposed, authentication bypassed, business impact).
- Remediation guidance (code/config fixes, input validation, header hardening).
Attach screenshots where helpful and include raw Burp items for developers to reproduce.
- Use a dedicated browser profile for testing and never browse everyday websites through Burp.
- Save useful requests to the Project for later automation and scans.
- Learn to use match/replace rules to streamline testing (e.g., auto-set headers).
- Combine Burp with other tools (e.g., Nmap, Nikto, OWASP ZAP) for a full coverage approach.
- Keep Burp updated; the BApp ecosystem evolves fast.
Burp is a powerful offensive tool, learn responsibly. Only test systems you own or have explicit written permission to test.