SSRF
En una falsificación de peticiones del lado del servidor (SSRF), el atacante consigue que el propio servidor haga peticiones a donde él quiere: servicios internos, metadatos de la nube o puertos que desde fuera no se ven. Suele esconderse en funciones inocentes como importar desde una URL, generar vistas previas o recibir webhooks.
Guía: SSRF, qué es y cómo se busca →SSRF en Lichess: el parámetro players de la exportación de partidas hacía que el servidor pidiera cualquier URL
Los endpoints públicos de exportación de partidas de Lichess pasaban el parámetro players, sin validar, al cliente HTTP del servidor. Cualquiera, sin autenticarse, podía hacer que Lichess lanzase peticiones GET a la URL que quisiera.
3 min
SSRF ciego en Stripo: la exportación a webhook enviaba peticiones del servidor a cualquier URL
El servicio de exportación de my.stripo.email aceptaba cualquier dirección en el campo webhookUrl, sin filtrar, y hacía que su propio servidor enviase peticiones HTTP a la URL que eligiera el usuario.
4 min
ssrf_filter dejaba pasar el prefijo NAT64 de uso local 64:ff9b:1::/48 y permitía saltarse la protección SSRF
La gema Ruby ssrf_filter 1.3.0 bloqueaba el prefijo NAT64 conocido 64:ff9b::/96, pero no el de uso local 64:ff9b:1::/48, así que direcciones internas codificadas en ese rango se trataban como públicas.
4 min
SSRF en la vista previa de enlaces de Rocket.Chat: un dominio que resuelve a una IP interna esquiva el filtro
La vista previa de enlaces de Rocket.Chat 7.11.0 solo bloqueaba IPs internas escritas tal cual en la URL; un dominio apuntando a una IP privada hacía que el servidor pidiera y mostrara contenido de la red interna.
2 min
SSRF ciego por POST en phpBB: el endpoint de notificaciones Web Push aceptaba cualquier URL
En phpBB 4.0.0-alpha1, cualquier usuario registrado podía registrar una URL arbitraria como destino de sus notificaciones Web Push y obligar al servidor a enviar peticiones POST a servicios internos o a metadatos de la nube.
4 min
SSRF en Rocket.Chat: las vistas previas oEmbed seguían redirecciones hacia la red interna sin validarlas
Rocket.Chat 7.10.1 filtraba las IP internas en la URL publicada, pero no en el destino de sus redirecciones. Con un enlace acortado, el servidor pedía recursos internos y mostraba parte de la respuesta en la vista previa.
2 min
Burp MCP Server: una coma en el nombre de host convierte un clic de aprobación en varias reglas automáticas
La extensión MCP de Burp Suite guardaba el host aprobado sin validarlo. Un host con comas, aprobado con un clic, se dividía en varias entradas de la lista blanca y permitía peticiones a localhost o redes internas sin volver a preguntar.
4 min
SSRF sin autenticación en Rocket.Chat: la integración SMS de Voxtelesys burla checkUrlForSsrf con DNS rebinding
El webhook público de SMS de Voxtelesys en Rocket.Chat 7.13.2 validaba la URL de un adjunto una sola vez por DNS. Con DNS rebinding se esquivaba el filtro checkUrlForSsrf y se leían respuestas de hosts internos.
5 min
SSRF en la app Notifications de Nextcloud por un proxyServer de push controlado por el usuario
Un usuario autenticado sin privilegios podía registrar un dispositivo push indicando un servidor proxy arbitrario. Al generarse una notificación, el backend hacía una petición POST hacia esa dirección, incluidos destinos internos como localhost.
2 min
SSRF en el cliente wlc de Weblate por discrepancia entre analizadores de URL en normalize_request_url
wlc valida el origen de las URL con urlparse, pero requests las resuelve con urllib3. Una barra invertida antes de la @ hace que ambos vean hosts distintos, y un servidor malicioso puede redirigir las peticiones del cliente a cualquier host.
5 min
De crear una tienda a ser root en Shopify: la cadena que empieza en un SSRF
Una plantilla que el generador de capturas ejecutaba permitía leer los metadatos de Google Cloud, robar el token de la cuenta de servicio y, vía Kubelet, acabar con shell root en los contenedores.
2 min