Payloads.
Pick a vulnerability class, learn how to hunt it step by step, grab the payloads that actually work. Curated from PayloadsAllTheThings — the full section is linked under every class.
Race Condition
Sending multiple requests at the same instant to beat a check-then-act window — single-use coupons, transfers, and limits all break. If the server validates then acts in separate steps, parallel requests slip between them.
Severity guide
High when money/limits are beaten (double redemption, negative balance); medium for vote/limit abuse; the single-packet proof is what makes triage believe it.
Where to look
entry points to test first01
Coupons, credits & gift cards
Redemption, transfer, top-up — the classic targets where double-spend pays.
02
Rate-limited actions
Password reset, OTP verification, votes, withdrawals — limits enforced before the action completes.
03
Profile/email updates
The email-change race: last-write-wins binds an account to the attacker's email.
04
Follow/like/claim buttons
One-per-user constraints enforced with check-then-insert.
05
Multi-step workflows
Payment→fulfillment, approval→execution — states that can be double-triggered mid-transition.
How to hunt it
in order, start to finishFind rate-limited or single-use actions
Coupon redemption, gift-card transfer, vote/like limits, password-reset token usage — anywhere the server checks then acts.
Fire parallel requests
Turbo Intruder with a single-packet gate — N identical requests released simultaneously beat the check together.
Watch for last-write-wins
Email/profile updates racing can bind a victim's account to your email — the classic 'new email' race.
Prove the win
Two redemptions of one coupon, or one token used twice — show the server state that shouldn't exist.
Try the session-swap variant
Mix two different sessions' requests in one packet — multi-session races beat per-session locks too.
Filter & validation bypasses
when your first tries get blocked- 01Per-session locks? Mix sessions in one packet — global locks are the only real defense.
- 02Single-packet blocked? Distributed across connections/IPs still wins on slower check-then-act gaps.
- 03State machine guards? Look at edge transitions — cancel-during-processing and double-submit at boundaries.
- 04Randomized delays? Retry — races are probabilistic; 20 attempts is normal.
Impact ladder
what makes it payable- 01Double-spend — coupons, balances, gift cards redeemed twice.
- 02Limit bypass — rate limits, withdrawals, and one-per-user constraints beaten.
- 03Account binding — email-change races pre-ATO an account.
- 04Data corruption — duplicated/contradictory server state from mid-transition writes.
Payloads
2 · from PayloadsAllTheThingsengine.queue(request, gate='race1')Turbo Intruder — queue N requests without sending.
engine.openGate('race1')Release all queued requests in a single packet window — the race moment.
Payload strings, code and technical terms are shown in English on purpose — payloads must be copied exactly as published.
Payloads originate from PayloadsAllTheThings (MIT) — use them only on programs you're authorized to test.