VULNERABILIDADES DE APLICACIONES WEB: CROSS-SITE REQUEST FORGERY EN EL LOGIN

12.11.2018 11:29
 
Hay quienes creen que los formularios de inicio de sesión no necesitan ser protegidos de los ataques de CSRF. Eso es un error grave.
 
Supongamos que el atacante crea una cuenta en un sitio de confianza y luego crea en su propio sitio o en uno vulnerable a XSS una solicitud de inicio de sesión con sus propios nombre de usuario y contraseña e induce a la víctima a visitar ese sitio. El atacado iniciará una sesión creyendo que lo está haciendo con su propia cuenta pero en realidad lo estará haciendo con la del pirata informático. Ahora el atacante tendrá acceso a todos los datos o metadatos que la víctima deje tras de sí como "rastro" (intencionalmente o no) mientras su navegador esté conectado al sitio de confianza.
 
Como hay sitios que guardan registro de la actividad del usuario para uso del sitio y del propio usuario, el atacante podrá acceder al historial - a veces muy detallado - de actividades de su víctima. Para no dar ideas a los maleantes no describiremos en detalle todo lo que se puede hacer con esa información.
 
Para que se termine de entender el ataque daremos un ejemplo práctico: 
 
Formulario de inicio de sesión:
 
<form action="login.php" method="post">
<label>Nombre de Usuario :</label>
<input type="text" name="usuario"/><br />
<label>Clave :</label>
<input type="password" name="clave"/><br/>
<input type="submit" value=" Enviar "/><br />
</form>
  
Solicitud de inicio de sesión fraguada por el atacante:
 
<html>
<body onload="document.formulario.submit()">
<form action="https://sitioatacado.com/login.php" method="post" name="formulario">
<input type="hidden" name="usuario" value="NombreAtacante"/><br />
<input type="hidden" name="clave" value="ClaveAtacante"/><br/>
</form>
</body>
</html>
 
No lo olvide: CUANDO ESTÉ CREANDO UN SITIO USE SIEMPRE UNA PROTECCIÓN ADECUADA CONTRA LOS ATAQUES DE CSRF. En un próximo artículo describiremos varias formas de hacerlo. 
 
EL PROPIO USUARIO TAMBIÉN PUEDE ADOPTAR MEDIDAS DE PROTECCIÓN: ¡Cuidado con los trucos de manipulación ("ingeniería social")! Es bueno que el usuario se pregunte si es adecuado cliquear en determinado enlace; si el sitio que está visitando es de confianza; si realmente es necesario visitar dos o más sitios simultáneamente (hecho no imprescindible para sucumbir a este tipo de ataque); etc.
 
Artículo relacionado: