Qué es SSRF: el servidor como mensajero
Imagine que usted le pide a un mensajero de confianza que vaya a buscar un paquete a una dirección que usted escribe en un papel. El mensajero tiene un gafete que le abre todas las puertas del edificio de la empresa. Si nadie revisa qué dirección escribió usted, podría mandarlo a la bóveda del sótano en lugar de a la tienda de la esquina. Eso, en esencia, es la falsificación de solicitudes del lado del servidor, conocida por sus siglas en inglés SSRF (Server-Side Request Forgery).
Qué es, en una frase
Una SSRF es una falla en la que un atacante logra que el servidor haga solicitudes a destinos que él elige, incluidos destinos internos que el atacante no podría alcanzar por su cuenta.
Para entenderla necesita una idea previa: en la web, el cliente (su navegador) pide cosas y el servidor (la aplicación) responde. Pero el servidor también puede actuar como cliente de otros servicios: muestra la vista previa de un enlace pegado en un chat, importa una foto desde una URL o avisa a un webhook. En todos esos casos, el usuario aporta una URL y el servidor la visita. El problema aparece cuando la aplicación no limita a dónde puede ir esa solicitud. El servidor vive dentro de la red, detrás del firewall, y alcanza cosas que un visitante de internet nunca vería: paneles internos, bases de datos con interfaz HTTP o el servicio de metadatos de la nube.
Navegador del atacante --> Aplicación pública --> Servicio interno
(internet) (zona expuesta) (red privada)El atacante no rompe el firewall: convence a un servidor que ya está dentro de que haga la solicitud por él. Por eso la solicitud está falsificada: parece legítima porque sale de un equipo de confianza.

Por qué ocurre
La causa raíz casi siempre es la misma: confiar en una URL que controla el usuario sin validar su destino real. Detrás suele haber una función pensada solo para el caso feliz, una validación que revisa el texto de la URL y no la IP a la que se conecta, una librería que sigue redirecciones sola y una red interna que confía en todo lo que viene de dentro.
Breve historia
| Año | Hito |
|---|---|
| 2017 | Orange Tsai presenta en Black Hat USA "A New Era of SSRF": distintos analizadores de URL leen la misma cadena de forma diferente |
| 2019 | Una filtración en un banco estadounidense, que verá en la lección siguiente, usa una SSRF contra los metadatos de la nube |
| 2019 | AWS publica IMDSv2, una versión del servicio de metadatos diseñada para resistir SSRF |
| 2021 | SSRF entra como categoría propia del OWASP Top 10: A10:2021 |
| 2023 | El OWASP API Security Top 10 la incluye como API7:2023 |
| 2025 | La edición 2025 del OWASP Top 10 la integra dentro de la categoría de control de acceso roto |
En 2021 no entró por ser la falla más frecuente en los datos, sino porque la comunidad la señaló en la encuesta como un riesgo creciente por el auge de la nube y los microservicios. Que en 2025 se agrupe con el control de acceso no la hace menos grave: en el fondo, es una forma de saltarse los límites de acceso de la red.
La debilidad principal se cataloga como CWE-918: Server-Side Request Forgery.
Por qué importa en su trabajo
- Desarrolladores: cada función que recibe una URL es un sumidero potencial.
- Revisores autorizados: la SSRF suele estar entre los hallazgos más graves de una auditoría web en la nube.
- Analistas de SOC: un intento deja huellas en la aplicación, el proxy y la nube; hay que cruzarlas.
- Ingenieros de nube: IMDSv2, la segmentación y el mínimo privilegio son la última barrera.
Sin ese dominio, lo típico es una "corrección" que bloquea el texto 127.0.0.1 y deja la puerta abierta.
Dónde aparece
| Lugar | Ejemplo |
|---|---|
| Aplicaciones web | Vistas previas de enlaces, importación de imágenes, generación de PDF |
| Integraciones | Webhooks y conectores a servicios de terceros |
| Nube | Instancias con acceso al servicio de metadatos y a roles con permisos |
| Microservicios | Servicios internos sin autenticación que confían en la red |
| Procesamiento de archivos | SVG, XML o documentos con referencias externas |
Conceptos clave
| Concepto | Qué significa |
|---|---|
| URL | Dirección de un recurso: esquema, host, puerto, ruta y consulta, como https://cdn.ejemplo.cr:443/logo.png?v=2 |
| Solicitud saliente | Conexión que inicia el servidor hacia otro destino |
| Fuente | Lugar por donde entra un dato que controla el usuario |
| Sumidero | Función que hace la solicitud saliente con ese dato |
| Red interna | Direcciones privadas o de bucle local que no son accesibles desde internet |
| Servicio de metadatos | Servicio de la nube que entrega a cada máquina su información y credenciales |
| Lista de permitidos | Conjunto cerrado de destinos aceptados; todo lo demás se rechaza |
| Proxy de egreso | Intermediario por el que pasa todo el tráfico que sale, y que aplica una política |
Cómo leer las fichas del curso
En una sintaxis, los corchetes indican partes opcionales, las MAYÚSCULAS son valores que usted reemplaza y ... indica que se puede repetir. Para pedir ayuda, use comando --help o man comando en la terminal y help(funcion) en Python.