En una análisis de seguridad reciente me he encontrado una vulnerabilidad (funcionalidad) del manejo de sesiones dependiente de los Servelts de Java que no conocía.
Según parece, añaden la sesión de un usuario a la URL como parámetro con el objetivo de controlar aquellos navegadores que no soporten el manejo de esta cabecera (wtf?).
Este comportamiento provoca que esta información sea almacenada en registros de pasarelas HTTP intermedias o historiales de navegación. Una vulnerabilidad de sobra conocida y documentada.
La siguiente captura muestra un ejemplo del comportamiento descrito anteriormente:
En el caso de Tomcat 6, que se basa en la versión 2.5, se ha de deshabilitar de la siguiente forma:
3 comments :
No lo acabo de entender del todo ¿Qué problema puede acarrear que el JSESSIONID vaya en la url que no acaree ya el hecho de que vaya en la cabecera HTTP?
Hola!
Pues el problema es que puede quedar en los logs de un proxy y alguien que tenga acceso a esos logs, podrá robar la sesión. Otro ejemplo es que el enlace se guarde en el histórico de un ordenador público, con lo que ocurriría lo mismo.
Hola,
Esta cookie también queda almacenada en el navegador y puede consultarse a través de por ejemplo las herramientas de desarrollador de los navegadores. ¿Existe alguna manera de controlar la creación de JSESSIONID y establecer por ejemplo parámetros como HttpOnly o Secure durante la creación?
Un saludo
Publicar un comentario