Hay alguna confusión básica que tengo.
Una víctima no sospechosa visita un sitio web vulnerable, vulnerable.com
e inicia sesión allí. vulnerable.com
, inicio de sesión posterior, envía una respuesta que tiene el siguiente conjunto de encabezado HTTP,
Acceso-Control-Permitir-Credenciales: Verdadero
Access-Control-Allow-Origin: vulnerablesite.com
Digamos que la cookie de sesión está orientada solo a la ruta /home.html
(lo que puede no tener mucho sentido, pero supongamos que, por el bien de esta discusión) y no tiene el conjunto de indicadores HTTPOnly.
Ahora, en el mismo navegador, abre una nueva pestaña y visita vulnerablesite.com/some_page.html
Un atacante identifica un XSS almacenado en vulnerablesite.com/some_page.html
y decide explotarlo para obtener acceso a la cookie de sesión del usuario en vulnerable.com
.
Para hacerlo, el atacante inyecta un script AJAX en vulnerablesite.com/some_page.html
, por lo que cuando la víctima visita la página, realizará una solicitud AJAX a vulnerable.com/home.html
. Ahora, esta solicitud definitivamente tendrá éxito (no hay razón para no hacerlo y también porque Access-Control-Allow-Credentials
era verdadero) y la respuesta que se recibe también será legible por el script AJAX del atacante (debido a que Access-Control-Allow-Origin
se estableció en vulnerablesite.com
, así que no hay violación de la misma política de origen)
Cuando el script AJAX del atacante dice xhr.response, este objeto de respuesta definitivamente contendrá la página /home.html
.
La confusión principal está en torno a la ruta y los atributos de dominio de la cookie. Preguntas
- Entonces, en este caso, cuando el script del atacante dice document.cookie ahora, ¿Podrá el atacante leer la cookie de sesión de la víctima?
- porque la cookie tiene un alcance de
/home.html
, cualquier solicitud realizada a/home.html
llevará esta cookie a lo largo. Pero porque la respuesta a/home.html
no está haciendo un conjunto de cookies cuando el ajax del atacante decir document.cookie ¿qué será leído exactamente? - no tiene idea de cuál sería el atributo de dominio de la cookie en este caso y cómo afectará la lectura de la cookie en De todos modos, si es que lo hará.