Open Redirect Chains
Do not report the bounce. Report where the victim's code, token, or script execution goes.
Tags: redirect, oauth, ato, xss
Level: intermediate
Method
Inventory every bounce
next, returnUrl, redirect, continue, url, dest, RelayState, successUrl. JS and 302.
cat urls.txt | gf redirectParser matrix
//evil, /\evil, https://target.com.evil.com, https://evil.com/https://target.com, @, backslash, javascript:, data:.
OAuth / next= after login
If the bounce sits on redirect_uri or post-login next=, the code lands on you.
XSS sinks
If the bounce is assigned to location or href without a scheme check, it is XSS.
Field notes
- Allowlists that use startsWith('https://target.com') lose to https://target.com.evil.com and https://target.com%00.evil.com depending on the parser.
- See the open-redirect gadget on /gadgets/ for the chain menu.