¿Obtendría el atacante un token CSRF válido si el token de la sesión es robado?

0

El token sincronizado CSRF tiene sentido hasta cierto punto. ¿Alguien puede explicar el resto de una manera infantil hasta donde pueda entenderlo?

Cuando un usuario inicia sesión, se les asigna un ID de sesión y un CSRF. El ID de sesión se almacena en cookies de sesión y el token CSRF solo se almacena en la página, preferiblemente en un campo oculto. Cuando un usuario envía una solicitud que requiere privilegios especiales, el token CSRF se envía con él. El servidor verifica que es el usuario y confirma la acción.

Bueno, aquí es donde tengo el problema. Si un usuario consigue que le roben su ID de sesión junto con cualquier otra identificación, digamos de un ataque de hombre en el medio, que no necesita XSS. ¿No se le daría al usuario malintencionado el mismo token CSRF que se le dio a la sesión a ese usuario?

  • Ignorar las respuestas de encabezados para la prevención, por favor *
pregunta White Lotus 18.10.2016 - 23:48
fuente

2 respuestas

0

Aunque las vulnerabilidades se pueden encadenar, también debemos analizar las vulnerabilidades desde una perspectiva independiente. Las soluciones para una vulnerabilidad pueden ayudar a solucionar otra, pero no suele ser el caso.

CSRF es el ataque en el que un atacante manipula la confianza inherente del usuario del navegador. Cualquier persona con una sesión válida también debe tener un CSRF token válido porque así es como se supone que funciona la aplicación. Si el usuario robó o no el session token de otra persona, esto no importa mucho para la aplicación aquí. No hay forma de que el servidor identifique si la sesión ha sido robada o no.

Aparentemente, desde la perspectiva de una aplicación, está utilizando session id para identificar y mantener la sesión. Un session id robado no implica un cambio de sesión y, por lo tanto, el atacante obtendrá un CSRF token válido.

Pero si el CSRF token no es válido, puede comprender que la solicitud originó Cross Site y que está falsificada.

    
respondido por el hax 19.10.2016 - 01:41
fuente
1

Los tokens CSRF no son una defensa contra otros usuarios que inician sesión en su cuenta. Los tokens CSRF son solo una defensa contra los ataques CSRF. Si alguien inicia sesión en una cuenta (incluido un atacante), debe obtener el token CSRF (junto con todo el resto del contenido que normalmente se entrega al usuario).

    
respondido por el Macil 18.10.2016 - 23:53
fuente

Lea otras preguntas en las etiquetas