XSS por robar cookies ... ¿ya no?

6

El otro día encontré una vulnerabilidad de XSS en un sitio web que un amigo me dijo a Pentest. Era una página de una escuela que está administrando, así que lo importante aquí son las credenciales de inicio de sesión == COOKIES.

En esta prueba, descubrí que las cookies eran solo de HTTP, por lo que probé con un alert(document.cookie) = La alerta estaba en blanco.

Sabía que la cookie era userSession y el valor era 019845547 pero no pude obtenerla con XSS o la inyección de JavaScript. Conocía esta información con las Herramientas de desarrollo en Google Chrome.

He leído que JavaScript no puede acceder a las cookies de HTTP Only por razones de seguridad, ¡y eso es genial!

¿Pero eso significa que XSS ya no es para robar cookies?

¿O quizás estoy desactualizado para nuevas cosas de seguridad? ¿O hay otra técnica para robar cookies de HTTP Only?

    
pregunta NathanWay 10.08.2015 - 05:29
fuente

4 respuestas

3

Bueno, el servidor TIENE que establecer esta marca en la cookie, si no lo hace, los scripts del lado del cliente, como los fragmentos de código JavaScript en un ataque de estilo XSS, pueden acceder al contenido de la cookie. Además, es posible que desee ver XST (Rastreo entre sitios) , que creo que puede pasar por alto esta bandera y permitir el robo de cookies en algunos escenarios. Desde la página wiki para ello:

  

Etiquetar una cookie como HttpOnly prohíbe que JavaScript acceda a ella, protegiéndola de ser enviada a un tercero. Sin embargo, el método TRACE se puede utilizar para omitir esta protección y acceder a la cookie incluso en este escenario.   Los navegadores modernos ahora impiden que se realicen solicitudes TRACE a través de JavaScript, sin embargo, se han descubierto otras formas de enviar solicitudes TRACE con navegadores, como el uso de Java.

Más sobre esto en: enlace

Espero que esto ayude.

    
respondido por el Aatif Shahdad 10.08.2015 - 12:46
fuente
3
  

¿Pero eso significa que XSS ya no es para robar cookies?

En resumen, no, XSS no se usa para robar cookies cuando se establece este indicador.

La respuesta más larga es que los navegadores modernos admiten el indicador HttpOnly en las cookies. Este indicador se puede establecer cuando el servidor envía un encabezado Set-Cookie al navegador para evitar que document.cookie obtenga el contenido de las cookies. Es una técnica de mitigación para el problema más grande de XSS. Que yo sepa, con los navegadores actualizados y las versiones actuales de Flash, Java y otros complementos, no hay forma de evitar esta bandera.

Sin embargo, debido a que tiene XSS, hay otras formas de obtener acceso a las credenciales sin tener acceso a las cookies.

    
respondido por el user79537 10.08.2015 - 06:22
fuente
2

Si se implementa correctamente, HttpOnly evita que un atacante robe la cookie.

Sin embargo, la función HttpOnly se puede omitir en ciertas versiones de algunos navegadores y servidores web.

Echa un vistazo:

enlace

enlace

enlace

En resumen, HttpOnly hace las cosas más difíciles para un atacante, pero no detiene a un hacker / pentester experimentado.

    
respondido por el Michal Koczwara 10.08.2015 - 09:40
fuente
-1

Cuando el indicador Sólo HTTP se establece como verdadero en el lado del servidor, no hay otra manera de robar la cookie utilizando XSS . En los navegadores web modernos como Chrome no hay manera de ver las cookies usando xss porque los filtros xss están habilitados de forma predeterminada.

Si no está habilitado en el navegador, también hay una manera de habilitar el filtro XSS en el navegador desde un encabezado de respuesta del lado del servidor llamado X-XSS-Protection puedes verificar esto para este encabezado

¿Pero eso significa que XSS ya no es para robar cookies?

Ya no podemos robar la cookie usando scripts del lado del cliente cuando este indicador está habilitado.

    
respondido por el Bhuvanesh 10.08.2015 - 07:45
fuente

Lea otras preguntas en las etiquetas