Estoy probando con lápiz una aplicación ASP.NET que muestra un comportamiento de Fijación de sesión . La aplicación está utilizando sesiones basadas en cookies . Básicamente:
- Cuando llegas a la página, no se crea una cookie de sesión
- Después de que se haya creado el inicio de sesión
ASP.NET_SessionId
se creará una cookie - En el cierre de sesión y el inicio de sesión repetido, el valor de la cookie sigue siendo el mismo (no hay regeneración del valor de la cookie)
He podido realizar el ataque de fijación de sesión manualmente :
- He aterrizado en la página
- Creé manualmente una cookie
ASP.NET_SessionId
con algún valor (para el atacante) - Abrí una nueva sesión del navegador y configuré exactamente la misma cookie (para la víctima)
- Inicié sesión como víctima en esta nueva sesión del navegador
- En la sesión del navegador del atacante, ahora podía navegar por el sitio web como víctima
Ahora estoy teniendo problemas para explotar esta vulnerabilidad de reparación de sesión en condiciones reales. Necesito crear o modificar la cookie ASP.NET_SessionId
de alguna manera. Por lo que puedo decir, no hay una vulnerabilidad de XSS en el sitio web que pueda usar.
He estado jugando con las dos variaciones de ataque más notables pero sin suerte (un caso en el que una víctima haría clic en un enlace que establecería una cookie en la página web):
- JavaScript
https://www.example.com/<script>document.cookie='ASP.NET_SessionId=THISISAFIXATEDCOOKIE; expires=Thu, 18 Dec 2015 12:00:00 UTC; path=/; domain=example.com; path=/'</script>
- Inyección de HTML
https://www.example.com/<meta http-equiv=Set-Cookie content="ASP.NET_SessionId=THISISAFIXATEDCOOKIE; expires=Thu, 18 Dec 2015 12:00:00 UTC; path=/; domain=example.com; path=/">
Lo que sea que haya intentado, he llegado a una página de error predeterminada o a la página de destino sin una cookie creada / modificada.
¿Me estoy perdiendo algo con estos dos vectores de ataque?
¿Hay algún otro método que pueda intentar para crear o modificar la cookie ASP.NET_SessionId de la víctima además de usar man-in-the-middle o man-in-the browser ¿Em> (basado en malware) ataques?