¿Es posible capturar todas las cookies de diferentes sitios web con un solo ataque XSS?

5

Me preguntaba si es posible capturar todas las cookies de diferentes sitios web a través de un ataque XSS. Por ejemplo, supongamos que Twitter tiene una vulnerabilidad XSS que un atacante ha explotado. ¿El atacante podría capturar todas las cookies que están almacenadas en mi navegador desde Facebook, Gmail, Yahoo, etc., utilizando el exploit de Twitter XSS?

    
pregunta Analoggen hacker 13.04.2017 - 13:03
fuente

2 respuestas

11

No, porque XSS significa "secuencias de comandos entre sitios".

Normalmente, un sitio solo puede acceder a las cookies en su propio Origen. Esta restricción se conoce como Política del mismo origen .

Eso es example.org normalmente no puede acceder a las cookies en example.com .

Sin embargo, si hay un defecto XSS en example.com , y la marca HttpOnly no se usa en una cookie en example.com , entonces example.org puede robar las cookies de example.com si un usuario es víctima del ataque .

Si este ataque permitiera el acceso a todas las cookies del navegador, entonces el atacante no necesitaría la falla XSS en absoluto; simplemente escribirían el script en su propio dominio ( example.org en este caso) si no hubiera restricciones de la Política del mismo origen. .

Un error que permitiría acceder a todas las cookies que no son de HttpOnly, sería un " Universal XSS ". uXSS es una falla en un navegador web o extensión de navegador que permite violar la Política del mismo origen.

    
respondido por el SilverlightFox 13.04.2017 - 15:48
fuente
4

No, un código malicioso en un sitio web solo podría recuperar las cookies establecidas por este sitio web (y sus subdominios). Incluso en este caso, las cookies que tienen la La bandera HttpOnly no puede leerse mediante el código JavaScript.

Por ejemplo, si observamos las cookies que Facebook establece cuando solicita su página de inicio sin iniciar sesión:

$ curl --head https://www.facebook.com

HTTP/1.1 200 OK
...
Set-Cookie: fr=0a...Rvgc; 
            expires=Wed, 12-Jul-2017 11:09:57 GMT; 
            path=/; 
            domain=.facebook.com; 
            httponly

Tenga en cuenta el HttpOnly al final del encabezado Set-Cookie . Si, en el contexto del navegador de Facebook (por ejemplo, en la consola del desarrollador), accede al objeto document.cookie a través de JavaScript, no contendrá el contenido de la cookie fr . Sin embargo, el navegador aún almacenará la cookie y la enviará junto con cada solicitud HTTP realizada a *.facebook.com .

    
respondido por el christophetd 13.04.2017 - 13:08
fuente

Lea otras preguntas en las etiquetas