¿Por qué el robo de cookies no es suficiente para autenticar?

43

Intenté exportar todas mis cookies a través de la extensión 'Editar esta cookie' en una página de inicio de sesión que usa autenticación de cookies. Mientras estaba desconectado, intenté insertar esas cookies con la esperanza de que estuviera conectado, pero no sucedió nada.

Después de buscar, llegué a saber que las cookies enviadas están en formato cifrado. Pero la página no estaba usando ningún cifrado TLS. ¿Me estoy perdiendo algo?

EDITAR: intenté usar las mismas cookies mientras inicié sesión , es decir, exporté todas las cookies e importé en una ventana de incógnito, pero no sucedió nada.
Además, este tipo de ataque no parece estar funcionando en los sitios más populares como Google, Facebook, etc. Entonces, ¿cómo protegen contra tales ataques?

    
pregunta Kartikey singh 29.01.2018 - 18:19
fuente

7 respuestas

53

Técnicamente, incluso si los contenidos de la cookie se cifraran, si las cookies se copian correctamente en el nuevo navegador y el nuevo navegador envía los mismos encabezados HTTP (la misma cadena de agente de usuario, la referencia es la esperada, la computadora tiene la misma IP) dirección, y todas las demás encabezados que el servidor pudo haber almacenado previamente y y comparar con), el servidor en teoría no lo haría ' t poder diferenciar entre el navegador original y el nuevo navegador.

Supongo que está intentando copiar las cookies de un sitio que inicia sesión automáticamente cada vez que abre su navegador y no se ha desconectado.

Algunos sitios podrían usar otras formas de detectar si se trata de una cookie / sesión robada, pero es una perdiendo batalla porque todos esos pueden ser falsificados, por ejemplo:

  • Comprueba si la dirección IP ha cambiado
  • ¿Es el User-Agent el mismo
  • Comprueba si el remitente tiene sentido
  • Cualquier otro encabezado HTTP que el navegador envíe

Para responder a su pregunta, debería poder hacerlo funcionar si está tratando con un sitio de inicio de sesión automático y no ha cerrado la sesión. Asegúrese de que todas las cabeceras HTTP que su nuevo navegador está enviando sean las mismas , que la dirección IP es la misma, la referencia es la esperada, el mismo agente de usuario.

Tenga en cuenta que también es posible que el servicio que está utilizando esté utilizando una segunda cookie que olvidó copiar, por lo que crea una anomalía y lo echa.

    
respondido por el Wadih M. 29.01.2018 - 20:40
fuente
31
  1. Es posible que las cookies hayan sido firmadas o encriptadas, no la conexión que las entregó.
  2. Es posible que el servidor haya eliminado la sesión de su base de datos cuando se desconectó.
respondido por el user169249 29.01.2018 - 18:26
fuente
30

El contenido de una cookie está definido por la aplicación, y hay muchas formas de usarlos. Aquí hay una breve lista de algunas de las posibles razones por las que falló su esfuerzo.

  1. La cookie está vinculada a la dirección IP, la huella digital del dispositivo u otros datos que no son cookies que no capturó.
  2. La cookie original contiene una caducidad y ha pasado.
  3. La cookie es de un solo uso, es decir, el servidor rota el valor con cada solicitud / respuesta e invalida cualquier valor de cookie que ya se haya utilizado.
  4. La cookie estaba vinculada a una sesión que ya no existe en el servidor (posiblemente porque se desconectó).
  5. La cookie está emparejada con un elemento oculto dentro de la página (por ejemplo, un token CSRF) y no capturó ni volvió a crear ese valor.
  6. El servidor tiene una carga equilibrada, con estado de sesión en proc y un mecanismo de adherencia de sesión temporal aplicado por el equilibrador de carga. En su nueva sesión, a su cliente se le asignó un nodo diferente dentro de la granja donde no existe la sesión.
  7. El servidor web usa un motor de reglas para detectar actividades sospechosas, y su cookie falsificada se presentó fuera de secuencia o en un momento inesperado.
  8. Las cookies estaban bien, pero has desordenado algún otro detalle, como el encabezado del remitente.
respondido por el John Wu 30.01.2018 - 03:53
fuente
8

Como se mencionó, cuando se desconectó, el servidor invalidó la cookie que acaba de robar, por lo que no vale la pena intentar pretender ser usted mismo.

Por lo tanto, si desea probar realmente el intento de robar sus cookies para probar lo que se necesita para robar su sesión de este servicio web en particular, deberá exportar sus cookies e importarlas a un nuevo modo de navegador / incógnito sin iniciar sesión. en la pestaña de tu navegador original.

Pero, solo para tener en cuenta, las cookies a menudo también se comparan con otros criterios. Podemos verificar contra IP, user-agent, etc. enlace

También podríamos diseñar estrategias aún más inteligentes, como un sistema de actualización continua de tokens o huellas dactilares del navegador, para verificar que la persona en posesión de esta cookie es la persona a la que le dimos esa cookie y que no estaba t robado Por lo tanto, incluso si "roba" las cookies de autenticación, es posible que no pueda autenticarse con ellas.

    
respondido por el Kallmanation 29.01.2018 - 20:40
fuente
4

La sesión se invalidó en el servidor. Los sitios web seguros hacen esto para evitar exactamente el tipo de ataque que está describiendo. Cuando se cierra la sesión, el servidor elimina la sesión de su propia base de datos para que, incluso si las mismas cookies de la sesión se utilizaron nuevamente, no sean aceptadas por el servidor. Es por eso que es importante cerrar la sesión correctamente en el sitio web en lugar de simplemente cerrar su navegador, incluso si su navegador no guarda las cookies.

Los sitios web inseguros pueden dejar la sesión en el servidor, por lo que incluso una vez que haya "desconectado" (es decir, haya eliminado las cookies de su navegador), las mismas cookies de sesión pueden volver a usarse más tarde.

Intenta repetir tu experimento, pero esta vez no te desconectes de antemano. Inicie sesión en el sitio web y luego elimine manualmente las cookies de su navegador. Si vuelve a visitar el sitio web sin las cookies, no iniciará sesión. Ahora restaure las cookies e intente visitar el sitio nuevamente, y debe iniciar sesión nuevamente.

    
respondido por el Micheal Johnson 30.01.2018 - 09:48
fuente
1

Para sitios simples copiar las cookies debería ser suficiente. Un sitio más "seguro" fija su sesión como otros lo mencionaron a otros factores como IP.

También existe la posibilidad de que exista algún código javascript que verifique otros valores persistentes como Local / Session Storage, IndexDB, etc. Intenta echarles un vistazo. También sería posible que esta sea una aplicación de un solo sitio donde todos los datos se carguen a través de ajax y se use oAuth junto con una forma de almacenamiento persistente. No se necesitan cookies ya que el secreto se almacena en otro lugar.

    
respondido por el Fritz 30.01.2018 - 23:05
fuente
0

En muchos casos, robar las cookies ES lo suficiente para autenticar, es probable que hayas hecho algo mal.

Nota, TLS / cifrado no son relevantes aquí. Cuando esté leyendo la cookie del encabezado, el tráfico ya se habrá descifrado. Todo lo que Chrome te muestra ya está descifrado, el cifrado es completamente transparente.

Para responder a la pregunta. Los esquemas de autenticación varían. A veces solo utilizan cookies, en cuyo caso bastará con robarlas. A veces no usan cookies en absoluto. A veces usan una mezcla de cookies y otros datos.

Hay infinitos esquemas de cookies. No hay una respuesta simple para todos ellos.

    
respondido por el Matviy Kotoniy 01.02.2018 - 08:27
fuente

Lea otras preguntas en las etiquetas