highCWE-918API7:2023

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.

Código Vulnerable
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 });
});
Código Seguro
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

Node.jsPythonGoJavaPHPC#

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas