Server-Side Request Forgery (SSRF) en API
La API hace fetch a una URL proporcionada por el usuario sin validación, permitiendo a atacantes acceder a servicios internos, endpoints de metadata cloud o redes privadas.
Cómo Funciona
SSRF ocurre cuando una API acepta una URL del usuario y hace un request HTTP del lado del servidor. Los atacantes explotan esto para alcanzar servicios internos no expuestos a internet, como endpoints de metadata cloud (169.254.169.254), bases de datos internas o paneles admin. El servidor actúa como proxy, evadiendo firewalls y segmentación de red. En entornos cloud, SSRF puede filtrar credenciales IAM, tokens de service accounts y secretos de infraestructura desde APIs de metadata.
app.post('/api/fetch-preview', async (req, res) => {
const { url } = req.body;
const response = await fetch(url);
const data = await response.text();
res.json({ preview: data });
});import { isAllowedUrl } from './url-validator';
app.post('/api/fetch-preview', async (req, res) => {
const { url } = req.body;
if (!isAllowedUrl(url, { allowPrivate: false, protocols: ['https'] })) {
return res.status(400).json({ error: 'URL not allowed' });
}
const response = await fetch(url, { redirect: 'error' });
const data = await response.text();
res.json({ preview: data.slice(0, 5000) });
});Ejemplo Real
La brecha de Capital One en 2019 expuso 106 millones de registros. Un atacante explotó una vulnerabilidad SSRF en un WAF para acceder a metadata de AWS en 169.254.169.254, obteniendo credenciales IAM que dieron acceso a buckets S3 con datos de clientes.
Cómo Prevenirlo
- Valida y usa allowlist de URLs antes de hacer requests del servidor
- Bloquea requests a rangos IP privados y endpoints de metadata cloud
- Deshabilita redirects HTTP o valida los destinos de redirect
- Usa una librería de parsing de URLs para prevenir técnicas como DNS rebinding
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Broken Object Level Authorization (BOLA)
highLos endpoints de API no verifican que el usuario que hace el request es dueño del recurso al que accede — permitiendo a atacantes acceder a datos de otros usuarios cambiando IDs.
Autenticación Rota (API)
highLos mecanismos de autenticación de la API son débiles o están mal implementados — JWT sin validación adecuada, tokens fuera de cookies httpOnly o sin expiración.
Autorización de Propiedades de Objeto Rota
mediumLa API permite a usuarios leer o modificar propiedades a las que no deberían tener acceso — mass assignment, exposición excesiva de datos o falta de control de acceso a nivel de campo.
Consumo de Recursos Sin Restricción
mediumEndpoints de API sin rate limiting, paginación o límites de recursos — permitiendo a atacantes agotar recursos del servidor, generar costos o extraer datasets grandes.