Glosario

Qué es la SSRF (Server-Side Request Forgery, falsificación de solicitudes del lado del servidor)

La SSRF hace que un servidor envíe solicitudes a destinos internos, como los metadatos de la nube; causó la brecha de Capital One. Cómo defenderse.

Publicado 2026-06-07 Actualizado 2026-10-06 7 min de lectura
En esta página

Una función que recupera el contenido de una URL pegada es una comodidad cotidiana, pero en el peor de los casos expone tus credenciales de la nube. Eso es la SSRF. Aquí tienes cómo funciona y cómo defenderse, desde cero.

Qué ocurre realmente

El acceso normal es «usuario → sitio externo». La SSRF hace que el servidor envíe solicitudes a destinos internos en nombre del atacante. Los servidores pueden alcanzar redes internas y endpoints de credenciales de la nube que son invisibles desde fuera, así que un atacante puede leerlos de forma indirecta.

atacante
──"recupera esta URL interna"──▶
tu servidor (función de recuperar URL)
└─ solicitud por proxy ─▶
red interna / paneles de administración
169.254.169.254 (credenciales de la nube)
El atacante usa tu servidor como 'trampolín' para alcanzar sistemas internos que normalmente están fuera de su alcance.

En la nube, ese endpoint interno (el servicio de metadatos) puede entregar credenciales temporales. Si la SSRF lo alcanza, las credenciales se roban y el ataque lleva a la exfiltración masiva del almacenamiento, que es exactamente lo que ocurrió en la brecha de Capital One (2019): SSRF → metadatos → credenciales IAM → S3.

Dónde se esconde

Cualquier función donde «un servidor recupera una URL proporcionada por el usuario» es candidata.

FunciónImplementación típica
Vista previa OG / de enlaceel servidor recupera una URL pegada para construir una miniatura
Entrega de webhookel servidor hace POST a un destino especificado por el usuario
Importación de imagen / archivo«recuperar una imagen desde una URL»
Diagnósticos del sitioel servidor accede al sitio introducido para inspeccionarlo

Huecos de validación que la gente pasa por alto

«Bloquear las IPs internas» no basta. También debes gestionar estas elusiones.

El bloqueo ingenuo no basta

  • Seguimiento de redirecciones: un dominio permitido hace un 302 a una dirección interna.
  • Reenlace de DNS (DNS rebinding): IP externa en el momento de la validación, IP interna en el momento de la recuperación.
  • Trucos de codificación de IP: formas decimales/octales/cortas disfrazan una dirección interna.
  • Esquemas raros: file://, gopher:// y otros esquemas inesperados.

Cómo defenderte si construyes la función

La SSRF se previene en «cómo construyes la función». Estas son las reglas que este sitio se impone en sus propias funciones de diagnóstico.

1

Usa una lista de permitidos para los destinos

Restringe el esquema (http/https) y el host a un conjunto permitido únicamente. «Permitir solo estos» es más fiable que «bloquear los internos».

2

Bloquea los objetivos internos

Deniega la accesibilidad a 127.0.0.1 / 10.x / 192.168.x / 169.254.169.254 (metadatos).

3

Solo dominios que el usuario posea (para diagnósticos)

Restringe a dominios cuya propiedad haya demostrado el usuario. No dejes que se dirijan a sitios de terceros.

4

Gestiona las elusiones y protege los metadatos

Valida el destino final de la redirección, ten en cuenta el reenlace de DNS y exige metadatos basados en token (por ejemplo, IMDSv2) en la nube.

Este sitio se construye sobre «no guardar secretos», «diagnosticar solo lo que se ha demostrado poseer» y «minimizar el daño que pueda causar cualquier compromiso» (→ Acerca de este sitio).

SSRF, CSRF y redirección abierta: diferencias

Las tres implican un destino elegido desde fuera, pero difieren en qué se mueve y hasta dónde llega.

AtaqueQuién va adóndeQué puede alcanzar
SSRFTu servidor envía una petición al destino que se le indicóLugares inalcanzables desde fuera, como la red interna y las credenciales de la nube
CSRFEl navegador del usuario envía una petición que el usuario no pretendíaTodo lo que el usuario puede hacer en un sitio donde tiene la sesión iniciada
Redirección abiertaEl navegador del usuario se reenvía al sitio externo que se indicóUn sitio falso (phishing)

La SSRF es especialmente peligrosa porque lo que alcanza está «dentro del servidor». Los lugares que tu cortafuegos protege desde fuera siguen siendo alcanzables a través del servidor.

Casos reales: también se esconde en funciones de los frameworks

La SSRF no aparece solo en funciones de «recuperar esta URL» que escribes tú, sino también en funciones de los frameworks. En los CVE recientes de Next.js, por ejemplo, la SSRF (CWE-918) está entre los tipos de debilidad más comunes, en funciones del servidor como la optimización de imágenes que recuperan imágenes externas (→ vulnerabilidades de Next.js y React en datos reales, en inglés). En el «CWE Top 25» de MITRE (las 25 debilidades de software más peligrosas), publicado en diciembre de 2025, la SSRF ocupa el puesto 22.

En la nube, la brecha de Capital One es el ejemplo de referencia. La SSRF alcanzó el servicio de metadatos y se robaron credenciales temporales con permisos excesivos. En noviembre de 2019, AWS publicó IMDSv2 para reducir este tipo de daño.

Cómo comprobar tu propio entorno

1

Haz una lista de todos los lugares que recuperan una URL indicada

Busca en tu código clientes HTTP (fetch, axios, requests, etc.) cuyo destino pueda incluir entrada del usuario. Las vistas previas de enlaces, los webhooks, la importación de imágenes, la generación de PDF y las funciones de importación son los casos típicos.

2

Revisa los ajustes de permisos del framework

En los ajustes de optimización de imágenes o de recuperación externa, comprueba que los hosts permitidos no sean demasiado amplios (en Next.js, que images.remotePatterns no contenga una entrada que sea solo un comodín).

3

Exige IMDSv2 (AWS)

En las opciones de metadatos de cada instancia EC2, comprueba que HttpTokens está en required (solo IMDSv2). En servidores que no ejecutan contenedores, mantén en 1 el límite de saltos de la respuesta del token.

4

Restringe el tráfico saliente del servidor

Ejecuta el código que recupera URLs en un entorno aparte que no pueda alcanzar la red interna, o limita el tráfico saliente a los destinos que necesita. Si la validación de la aplicación pasa algo por alto, la red sigue deteniéndolo.

Fuentes (primarias)

  • OWASP, «Server-Side Request Forgery Prevention Cheat Sheet» (en inglés) — cheatsheetseries.owasp.org (listas de permitidos, bloqueo de direcciones internas, gestión de redirecciones y DNS)
  • AWS, «Use the Instance Metadata Service to access instance metadata» (en inglés) — docs.aws.amazon.com (tokens de sesión de IMDSv2, el ajuste required, límite de saltos)
  • AWS Security Blog, «Add defense in depth against open firewalls, reverse proxies, and SSRF vulnerabilities with enhancements to the EC2 Instance Metadata Service» (noviembre de 2019, en inglés) — aws.amazon.com
  • Microsoft, «Azure Instance Metadata Service» (en inglés) — learn.microsoft.com (Azure también usa 169.254.169.254)
  • MITRE, «2025 CWE Top 25 Most Dangerous Software Weaknesses» (diciembre de 2025, en inglés) — cwe.mitre.org (CWE-918 en el puesto 22)

Sigue leyendo

Clasificación

CWE clasifica los tipos de debilidad que causan las vulnerabilidades; MITRE ATT&CK clasifica las técnicas de los atacantes. Ambos los mantiene MITRE y se usan ampliamente para etiquetar vulnerabilidades y reglas de detección.

CWE™: Copyright © 2006–2026, The MITRE Corporation. CWE is a trademark of The MITRE Corporation. The MITRE Corporation hereby grants you a non-exclusive, royalty-free license to use CWE for research, development, and commercial purposes. Any copy you make for such purposes is authorized on the condition that you reproduce MITRE’s copyright designation and this license in any such copy. CWE Terms of Use

FAQ

Q¿Qué tipo de funciones tienden a tener SSRF?
A

Funciones donde 'un servidor recupera una URL proporcionada por el usuario': generación de vistas previas OG/de enlaces, entrega de webhooks, importación de imágenes, diagnósticos del sitio. Cuanto más cómoda es la función, más cuidado necesita.

Q¿Por qué la SSRF es especialmente peligrosa en la nube?
A

Las máquinas virtuales en la nube tienen un 'endpoint de metadatos' solo interno que puede entregar credenciales temporales. Si la SSRF lo alcanza, esas credenciales se roban y el ataque lleva a la exfiltración masiva del almacenamiento (la vía de la brecha de Capital One).

Q¿Cómo me defiendo contra la SSRF?
A

Valida los destinos estrictamente con una lista de permitidos y bloquea la accesibilidad a IPs internas (127.0.0.1, 10.x, metadatos 169.254.169.254). Para los diagnósticos, restringe a dominios cuya propiedad haya demostrado el usuario, y gestiona las elusiones por seguimiento de redirecciones y por reenlace de DNS.

Q¿Qué diferencia hay entre SSRF y CSRF?
A

Quién envía la petición. El CSRF hace que el navegador de un usuario envíe una petición que el usuario no pretendía. La SSRF hace que tu servidor envíe una petición a un destino que nunca debería alcanzar. El daño del CSRF se limita a lo que puede hacer ese usuario; el de la SSRF se extiende a todo lo que el servidor puede alcanzar, como la red interna o las credenciales de la nube.

Q¿IMDSv2 previene la SSRF?
A

Estrecha mucho la vía para robar credenciales de la nube, pero no previene la SSRF en sí. IMDSv2 de AWS solo devuelve metadatos con un token de sesión obtenido mediante una petición PUT, así que a una SSRF simple que solo recupera una URL le cuesta llegar a las credenciales. Alcanzar pantallas de administración internas o API internas es otro problema, así que sigues necesitando una lista de destinos permitidos y el bloqueo de direcciones internas.

Q¿Qué es 169.254.169.254?
A

Una dirección solo interna (de enlace local) que las máquinas virtuales en la nube usan para leer su propia configuración y sus credenciales temporales. La usan AWS, Azure y Google Cloud. No se puede alcanzar desde fuera, pero el propio servidor sí puede, lo que la convierte en el destino más buscado en la SSRF.