Last reviewed

Quick Reference

Essential shortcuts, extensions, and configurations for web application testing. Current stable: Burp Suite 2024.x+ (Montoya API only).

Modern Web Attack Surface

HTTP/2: Burp 2024+ supports HTTP/2 smuggling and CL.0 / TE.0 desync. Enable Allow HTTP/2 ALPN override in Repeater. HTTP/2 Rapid Reset (CVE-2023-44487): Test with Turbo Intruder + concurrent stream cancellation. GraphQL: Install InQL for introspection, query templates, batched-query DoS. WebSockets: Use the WebSockets History tab + Match and Replace to fuzz WS frames. Race conditions: Turbo Intruder engine=Engine.BURP2 with concurrentConnections=30 + last-byte sync (PortSwigger 2023 technique). Server-side prototype pollution: Active scan check is built-in (Audit checks → Server-side prototype pollution).

⌨️ Global Shortcuts

Send to RepeaterCtrl + R
Send to IntruderCtrl + I
Forward PacketCtrl + F
Drop PacketCtrl + D
Switch TabCtrl + Shift + T
Go/Start AttackCtrl + Space
URL EncodeCtrl + U
URL DecodeCtrl + Shift + U
Base64 EncodeCtrl + B
Base64 DecodeCtrl + Shift + B

🔌 Proxy Configuration

Default Listener127.0.0.1:8080
CA Certificate URLhttp://burp
Firefox ImportSettings → Privacy → Certificates → Import
Chrome ImportSettings → Security → Manage Certs
Invisible ProxyProxy → Options → Request Handling
Upstream ProxyUser Options → Connections

🎯 Intruder Attack Types

SniperSingle payload, one position at a time
Battering RamSame payload in all positions
PitchforkMultiple lists, parallel iteration
Cluster BombAll combinations (cartesian product)

Sniper: Username enumeration, single param fuzzing

Pitchfork: Credential stuffing (user:pass pairs)

Cluster Bomb: Brute force login

🧩 Essential Extensions

Turbo IntruderHigh-speed fuzzing, race conditions
AutorizeAuthorization bypass detection
Logger++Advanced request/response logging
Param MinerHidden parameter discovery
JWT EditorJWT manipulation & attacks
Active Scan++Extended scanner checks
Retire.jsVulnerable JS library detection
HackvertorEncoding/decoding swiss army knife

🔄 Match & Replace Rules

Bypass WAF (UA)User-Agent → Googlebot/2.1
Remove CSPContent-Security-Policy → (empty)
Remove X-FrameX-Frame-Options → (empty)
Force HTTPhttps:// → http://
Add Header^Host: → Host:\nX-Custom: val
Change MethodGET → POST (request first line)

🔍 Scanner Configuration

Audit SpeedFast / Normal / Thorough
Scan TypePassive / Active / Full
Crawl DepthDashboard → New Scan → Crawl
Scope ControlTarget → Scope → Include/Exclude
Issue TypesAudit → Issues → Configure

⚡ Turbo Intruder - Race Condition

def queueRequests(target, wordlists):
    engine = RequestEngine(endpoint=target.endpoint,
                           concurrentConnections=30,
                           requestsPerConnection=100,
                           pipeline=False)
    for i in range(30):
        engine.queue(target.req, gate='race1')
    engine.openGate('race1')

def handleResponse(req, interesting):
    table.add(req)