SSRF
🔎 ¿Qué es?
La vulnerabilidad SSRF ocurre cuando una aplicación web permite que un usuario manipule las solicitudes HTTP que el servidor realiza a otros recursos.
👉 El atacante logra que el servidor envíe peticiones hacia redes internas o servicios restringidos.
⚙️ Flujo de la vulnerabilidad
[Atacante]
|
| Petición maliciosa con URL controlada
↓
[Aplicación vulnerable]
|
| Hace request desde el servidor
↓
[Recurso interno / externo]
|
→ Devuelve datos sensibles al atacante
📍 Ejemplo clásico
Una aplicación que obtiene imágenes a partir de una URL:
GET /fetch?url=http://example.com/logo.png
El atacante envía:
GET /fetch?url=http://169.254.169.254/latest/meta-data/
👉 El servidor accede a los metadatos de AWS EC2 (tokens, credenciales).
🚨 Riesgos
-
Acceso a redes internas (intranet, bases de datos, servicios internos).
-
Robo de credenciales en nubes (ej. AWS, GCP, Azure).
-
Exfiltración de archivos locales (
file://,/etc/passwd). -
Pivoting hacia sistemas internos.
-
Escalada de privilegios si se combinan con otras vulnerabilidades.
🛠️ Cómo detectarlo
-
Pruebas manuales:
-
Inyectar URLs internas (
127.0.0.1,localhost,169.254.169.254). -
Probar distintos esquemas (
http,https,file,gopher).
-
-
Herramientas:
-
Burp Suite(con extensiones SSRF). -
nuclei(templates de SSRF). -
gopherus,ssrfmap.
-
-
Indicadores:
-
Errores inusuales.
-
Respuestas inesperadas del servidor.
-
🛡️ Medidas de prevención
✅ Validar y sanitizar todas las entradas de URL.
✅ Mantener listas blancas de destinos permitidos.
✅ Bloquear acceso a direcciones privadas (127.0.0.1, 10.x.x.x, 169.254.x.x).
✅ Usar firewalls de aplicaciones (WAF) con detección SSRF.
✅ Segmentar la red para limitar el impacto.
✅ Aplicar principio de menor privilegio en servidores que hagan requests.
🎨 Resumen visual
Server-Side Request Forgery (SSRF)
├── Causa: App hace requests basados en input del usuario
├── Impacto: acceso interno, robo de datos, pivoting
├── Detección: fuzzing URLs internas, Burp, nuclei
└── Prevención: validación estricta, listas blancas, segmentación