Detect and exploit race condition vulnerabilities in web applications using Turbo Intruder's single-packet attack technique to bypass rate limits, duplicate transactions, and exploit time-of-check-to-time-of-use flaws.
Detect and exploit race condition vulnerabilities in web applications using Turbo Intruder's single-packet attack technique to bypass rate limits, duplicate transactions, and exploit time-of-check-to-time-of-use flaws.
When testing applications with transaction-based functionality (payments, transfers, coupons)
During assessment of rate-limiting or attempt-limiting mechanisms
When testing multi-step workflows (registration, password reset, MFA)
During bug bounty hunting for logic flaws in state-changing operations
When evaluating applications with inventory or balance management systems
How to CONFIRM a Hit (avoid false negatives)
Positive signal: a limit-once action actually happened MORE than once — the coupon redeemed twice, balance went into overdraft/double-spend, multiple accounts created with the same email, or stock decremented below zero.
Send N parallel requests (single-packet HTTP/2 or last-byte HTTP/1.1 sync) and then confirm the backend state, not just status codes: re-check the balance, coupon counter, inventory, or redemption count.
Multiple 200s alone are NOT a hit (the server may have processed them idempotently); a clean run is NOT a negative until timing was tight and repeated.
Do NOT conclude "not vulnerable" until you have tried:
Single-packet attack (HTTP/2) AND last-byte sync (HTTP/1.1) — one may win where the other fails.
Increasing concurrency (20→50+) and repeating batches, since success is probabilistic (~per-batch).
Connection warming to cut jitter, and verifying via a second account where relevant.
Multi-endpoint races (e.g. change-email + password-reset) not just single-endpoint repeats.
Confirming the resulting state change persists (double credit, extra item shipped) rather than relying on a 200 response.
Prerequisites
Burp Suite Professional with Turbo Intruder extension installed
Understanding of HTTP/2 single-packet attack technique
Python scripting ability for custom Turbo Intruder scripts
Knowledge of TOCTOU (Time-of-Check-to-Time-of-Use) vulnerabilities
Target application with state-changing operations (purchases, votes, transfers)
Multiple user accounts for testing cross-user race conditions
Legal Notice: This skill is for authorized security testing and educational purposes only. Unauthorized use against systems you do not own or have written permission to test is illegal and may violate computer fraud laws.
Step 2 — Configure Single-Packet Attack in Turbo Intruder
# Turbo Intruder script for single-packet race condition# This sends all requests simultaneously in one TCP packetdefqueueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=1,
engine=Engine.BURP2)
# Queue 20 identical requests for the same operationfor i inrange(20):
engine.queue(target.req, gate='race1')
# Hold all requests until ready
engine.openGate('race1')
defhandleResponse(req, interesting):
table.add(req)