¿Es posible ver si un script en un sitio web roba cookies de sesión?

3

Estoy viendo como algunas soluciones de análisis web, sé que suena paranoico. Pero el análisis web basado en cookies necesita que usted pegue su código JavaScript en su sitio web.

No me gusta demasiado la idea de simplemente pegar scripts en mi sitio web que no conozco.
Así que quiero verificar si estos scripts envían a otro servidor las cookies de sesión de los usuarios de mi sitio web. .

Algunas formas en las que pienso son:

  1. Use firebug para ver todas las solicitudes realizadas, el problema es que el script puede cifrar las cookies de alguna manera, por lo que no las veré como texto simple.

  2. Busca en el código JavaScript términos como "document.cookie"

¿Qué piensas?
¿Y la configuración de la cookie de sesión en HttpOnly lo deshabilitará por completo?

Gracias de antemano.

    
pregunta fiftyeight 24.08.2011 - 21:14
fuente

5 respuestas

6

Creo que sus instalaciones no tienen todo el problema:

  • La secuencia de comandos que incrusta desde fuentes externas se puede cambiar más adelante.
  • Robar la cookie de sesión es solo una manera fácil de aprovechar y la vulnerabilidad de XSS. En lugar de robar la cookie y usarla desde otra computadora para hacer cosas maliciosas, el script malicioso puede hacer esas cosas directamente sin fortalecer la cookie. Esto tiene una serie de ventajas desde el punto de vista de los atacantes:

    1. Funciona con el indicador HttpOnly ya que la secuencia de comandos simplemente envía la solicitud utilizando los medios normales del navegador, como enviar un formulario. Esto se puede hacer en un iframe oculto
    2. No revela la dirección IP del atacante al servidor. Esto es especialmente cierto en el contexto de los ataques XSS reflexivos.
    3. Funciona con mecanismos de autenticación adicionales, como la autenticación básica de http o la vinculación de la sesión a la dirección IP del cliente.
respondido por el Hendrik Brummermann 24.08.2011 - 21:49
fuente
2

En realidad, podría detectarlo anulando al creador de cookies usando __definegetter__:

document.__defineGetter__("cookie", function() { /*report stolen */ });

Sin embargo, esto se puede deshacer mediante el javascript en cuestión usando:

delete document.cookie;

antes de intentar acceder a él.

En ECMASCRIPT 5, el nuevo estándar de javascript, puede anularlo de manera que no pueda deshacerse.

Object.defineProperty(document, "cookie", { get: function() { /* report stolen */ }, set: function() { }, configurable: false })

El indicador configurable hace que sea imposible anular o eliminar el script cargado más adelante en la página.

Aunque como se menciona en otras respuestas, el script puede hacer cualquier cosa en nombre del usuario (CSRF), por lo que no estoy seguro de que esto lo lleve a ningún lado.

    
respondido por el Erlend 17.09.2011 - 13:14
fuente
1

En primer lugar, sí, la configuración de cookies como HttpOnly impedirá que cualquier código de JavaScript acceda a sus cookies en los navegadores de uso común.

Puede buscar en el script document.cookie, pero puede estar confuso y no puede estar seguro de si piensa en todas las formas en que el atacante puede acceder a las cookies. Un ejemplo podría ser:

var a="cookie", b;
for(c in document) {
    if(c == a) b = document[c];
}
alert(b);

Estoy seguro de que hay otras formas de ocultar tu intención al intentar atacar la página web. Acerca de la inspección de solicitudes: podría ser interesante ver lo que está pasando, pero como dijo, los parámetros de la solicitud pueden estar encriptados y tendrá que aplicar ingeniería inversa al algoritmo de encriptación del código JavaScript de terceros, lo que podría llevar mucho tiempo. / p>     

respondido por el bretik 24.08.2011 - 21:39
fuente
1

A menos que estén siendo muy cuidadosos, puedes aprender mediante el análisis del tráfico.

Cree una versión de la página con x kB de cookies y luego observe que envían mensajes por un total de y kB.

Cree una versión de la página que sea igual en todos los aspectos pero que tenga x 'kB de cookies, donde x' sea significativamente más grande que x pero aún dentro del rango de cookies que podría tener una página normal. Observe que envían mensajes por un total de 'kB'.

Si y es muy diferente de y ', entonces debes ser muy sospechoso.

  

¿Y la configuración de la cookie de sesión en HttpOnly deshabilitará esto por completo?

Sí, en los navegadores que son compatibles .

    
respondido por el Mike Samuel 24.08.2011 - 21:39
fuente
-1

Si adjunta un depurador a document.cookie y observa si hay alguna llamada, puede ver todo lo que hace el script con dichas cookies.

La configuración de la cookie de sesión en HttpOnly evitaría que los navegadores más nuevos pasen la cookie a javascript, pero los navegadores más antiguos no entienden HttpOnly.

    
respondido por el Steve 24.08.2011 - 21:28
fuente

Lea otras preguntas en las etiquetas