Vulnerabilidad CSRF

www.onlinetis.com
 

La vulnerabilidad CSRF (Cross-Site Request Forgery), también conocida como "falsificación de petición en sitios cruzados", es un tipo de ataque en el que se engaña al navegador de un usuario autenticado para que envíe una petición no deseada a una aplicación web.

El atacante no puede robar datos directamente, pero puede obligar al usuario a realizar acciones que no pretendía hacer, como cambiar su contraseña, transferir fondos o realizar una compra.


¿Cómo funciona un ataque CSRF?

El ataque se basa en el hecho de que muchas aplicaciones web confían en las peticiones que provienen del navegador de un usuario autenticado, sin verificar si el usuario realmente quiso enviarlas.

Aquí tienes un ejemplo de un ataque CSRF paso a paso:

  1. La víctima se autentica: Un usuario se conecta a su banco en línea. El servidor le da una cookie de sesión que autentica todas sus futuras peticiones.

  2. El atacante crea una petición maliciosa: El atacante crea una página web (por ejemplo, un foro, un blog o un correo electrónico) que contiene una petición oculta, como un formulario que se envía automáticamente o una imagen invisible. Esta petición apunta al sitio web del banco y realiza una acción como transferir dinero.

    HTML
    <img src="https://banco.com/transfer?cuenta=atacante&cantidad=1000" style="display:none;" />
    
  3. La víctima visita la página del atacante: La víctima, que sigue autenticada en el sitio del banco, visita la página web maliciosa.

  4. El navegador envía la petición: Su navegador carga la página maliciosa y, al hacerlo, intenta cargar la imagen oculta. Cuando el navegador envía la petición al banco, automáticamente incluye la cookie de sesión de la víctima, lo que hace que el banco procese la petición como legítima.

  5. El ataque tiene éxito: El banco procesa la transferencia de 1,000 euros a la cuenta del atacante, ya que la petición parece haber sido hecha por un usuario legítimo. La víctima no se da cuenta de nada.


¿Cómo se previene?

La principal defensa contra CSRF es el token anti-CSRF. Este es un valor único y aleatorio que el servidor genera e incluye en cada formulario o petición crítica.

  • El servidor genera un token y lo almacena en la sesión del usuario.

  • Cuando el navegador carga un formulario, el token se incrusta en un campo oculto.

  • Cuando el usuario envía el formulario, el servidor compara el token recibido con el que tiene almacenado en la sesión.

  • Si los tokens coinciden, la petición es legítima. Si no, se rechaza.

Como el atacante no puede conocer el token secreto de la víctima, su petición maliciosa no lo incluirá y será rechazada por el servidor, previniendo el ataque.

Entradas populares de este blog

Ciberseguridad y hacking con Whatweb

Como robar contraseñas haciendo un phishing web

Arsenal software hacking NFC