Open redirect

SkillSecurity

Open redirect, abuse a redirect param to send users to attacker sites, and chain it (OAuth token theft, SSRF filter bypass, phishing). Load on params like redirect=, next=, url=, return=, callback=, dest=, or a 30x Location built from input. Signals: `?returnUrl=`, login redirects, OAuth `redirect_uri`.

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Open redirect skill

What this skill tells your AI

The instructions your AI receives, as published by noorqureshi/sploitagent in skills/web/web-open-redirect/SKILL.md and read by ahel’s review.

When it applies

The app redirects to a location derived from user input without validating it stays on-site. Low severity alone — but a powerful chain link.

Why it works

The redirect target is attacker-controlled and trusted. On its own it's phishing; chained, it turns other flows malicious (OAuth codes/tokens sent to your host, SSRF allowlist bypass via a redirect to an internal URL).

Method

  1. Find the param (redirect/next/url/return/dest/callback) and set it to an external URL; follow the response — a 30x Location: https://evil.com (or JS/meta redirect) confirms.
  2. Bypass naive validation: //evil.com, https:evil.com, https://target.com@evil.com, https://target.com.evil.com, /\evil.com, whitelisted-prefix tricks, double-encoding, CRLF.
  3. Chain for impact:
    • OAuth: if it's the redirect_uri/return in an auth flow → steal the code/token (→ web-oauth, ATO).
    • SSRF allowlist: allowed host that open-redirects to an internal target bypasses the filter.
    • XSS: javascript: scheme in the redirect where the sink allows it.

Gotchas

  • Standalone open redirect is often low/informational — lead with the chain (OAuth/SSRF) for real severity.
  • Test both server 30x and client-side (JS location, meta refresh) redirects.
  • Path-relative allowlists frequently miss // and \ — try them.

Verify success

The app redirects the user to an attacker-controlled origin, or (chained) a token/code is delivered to your host / an SSRF filter is bypassed.

References

PortSwigger OAuth+redirect labs; OWASP Unvalidated Redirects Cheat Sheet.

Signals

GitHub stars
20
Forks
7
Last commit
Sep 2026
Advanced
Item type
skill
Key
web-open-redirect
Source
github.com/noorqureshi/sploitagent