Hay dos patrones de ataque principales que pueden ser explorados por un atacante armado con una vulnerabilidad XSS que afecta a una aplicación que usa HTTPOnly
cookies.
En primer lugar, un atacante puede utilizar un método de explotación similar al gusano Sammy . En este patrón de ataque, la carga útil XSS utiliza un XMLHttpRequest
para leer un token CSRF y realizar una acción como si fuera la víctima. Las acciones comunes serían agregar un nuevo usuario administrativo, cambiar su contraseña (o dirección de correo electrónico para restablecer la contraseña) o incluso transferir fondos. Cualquier acción que la sesión autenticada pueda realizar, debería poder realizarla con JavaScript mediante la lectura de tokens CSRF.
El segundo ataque está aprovechando un dominio de confianza. Digamos que el objetivo es https://sometrustedbank.com
. Ese HTTPS parece bastante brillante para los usuarios informados, pero un atacante puede modificar cualquier contenido en esta página asignando document.body.innerHTML
a cualquier valor. Un atacante podría realizar un ataque de phishing muy convincente, donde las víctimas indefensas son dirigidas a https://sometrustedbank.com
y se les pide que divulguen información personal (y profundos secretos oscuros). En este caso, el contenido es el rey, y un usuario desconoce que este contenido se origina en un atacante.
En resumen; habilite HTTPOnly
Cookies, pero sepa que esta función de seguridad nunca fue sangrada para detener XSS.