HttpOnly Session Hijacking XSS: Explicación y PoC
El atributo «HttpOnly» en las cookies HTTP es esencial para mejorar la seguridad de las aplicaciones web al mitigar el riesgo de robo de cookies y proteger los datos del usuario. Este atributo impide que las cookies sean accesibles desde scripts del lado del cliente, como JavaScript, limitando su accesibilidad únicamente a las solicitudes HTTP. Esto proporciona una capa adicional de defensa contra ataques, especialmente los de tipo Cross-Site Scripting (XSS), donde los atacantes inyectan scripts maliciosos en páginas web para robar cookies o realizar acciones no autorizadas.
Cuando un servidor web envía una cookie al navegador de un usuario, esta se almacena generalmente como un archivo de texto en el dispositivo del usuario y puede contener información sensible como ID de sesión, preferencias de usuario o tokens de autenticación. Sin el atributo «HttpOnly», estas cookies son accesibles tanto para los scripts del lado del cliente como para los del servidor, lo que aumenta el riesgo de que un atacante las robe y secuestre sesiones.
Al habilitar el atributo «HttpOnly«, se restringe el acceso de las cookies a los scripts del lado del cliente. Esto significa que incluso si un atacante logra inyectar un código malicioso en una página web, no podrá leer ni manipular los datos de la cookie. Esto reduce significativamente la superficie de ataque y protege mejor la información del usuario.
PoC
Después de autenticarnos, vemos que tenemos un campo de entrada. Cuando presionamos enviar, descubrimos que esta entrada proporcionada por el usuario se refleja en el lado del cliente. Lo que nos indica que podemos empezar a probar ataques de Cross Site Scripting (XSS).
En esta caso inyectaremos un script de JavaScript para ver mediante un PopUp la cookie de sesión. Con esto acabamos de ver que podemos inyectar JavaScript y confirmamos que el atributo HttpOnly no esta configurado.
Vamos a crear un script el cual va a robar la cookie de sesión y que nos la envíe a nuestro servidor web:
