Saltar al contenido
Explorar conocimiento

concepto · intermedio · 1 min de lectura

SSRF — Server-Side Request Forgery

SSRF permite a un atacante forzar al servidor a hacer requests a recursos internos que normalmente no serían accesibles desde afuera.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • SSRF as a concept

No cubre

  • implementation details

Supone

  • The reader understands relevant fundamentals.

Resumen

SSRF ocurre cuando un atacante controla una URL que el servidor va a consultar. Si tu aplicación tiene un endpoint GET /fetch?url=... que descarga y muestra el contenido de una URL, el atacante puede poner http://169.254.169.254/latest/meta-data/ —el endpoint de metadatos de AWS EC2— y obtener credenciales temporales del rol IAM de la instancia.

La defensa: validar URLs contra una allow-list de dominios permitidos, bloquear IPs internas y de loopback, y nunca devolver el cuerpo crudo de la respuesta al cliente.

Alcance y supuestos

Cubre SSRF, vectores de ataque y defensas. Asume familiaridad con HTTP y cloud.

Modelo mental

Un portero que recibe paquetes y los lleva al departamento correcto. Si un extraño le dice «llevame este paquete a la sala de servidores, es urgente», y el portero obedece sin verificar, el extraño accedió a un área restringida sin tener llave.

Uso práctico

  • ✅ Validar toda URL externa contra una allow-list.
  • ❌ Nunca permitir que el usuario controle URLs arbitrarias sin restricción.

Ejemplo trabajado: SSRF a metadatos de AWS

Un endpoint /proxy?url=... permite URLs arbitrarias. El atacante pone http://169.254.169.254/latest/meta-data/iam/security-credentials/admin. El servidor devuelve credenciales temporales de AWS que el atacante usa para acceder a S3 y DynamoDB.

Evidencia

  • SSRF es el puesto #10 del OWASP Top 10 2021. Los metadatos de cloud (AWS IMDS, GCE metadata) son blancos clásicos.

Fuentes citadas