Voler votre historique de navigation en utilisant :visited

May
07 2013
Voler votre historique de navigation en utilisant :visited

Comme vous le savez peut être, la plupart des navigateurs empêchent la détection de votre historique de navigation en utilisant le sélecteur CSS :visited. Le correctif diminue les possibilités de style sur les liens visités et bride l'accès depuis la méthode window.getComputedStyle().

Malgré ces efforts, il reste des possibilités pour extraire l'historique par la technique du "cache timing" ou encore en examinant le comportement des événements onerror/onload lorsque que l'on tente de charger des scripts ou des images soumis à authentification. Malheureusement ces attaques sont difficiles à mettre en œuvre sur des gros volumes de données et pas forcément fiables.

L'attaque ":visited" reste un saint Graal en ce qui concerne la détection des historiques de navigation. Certains tentent de contourner le correctif en affichant à l'utilisateur une série de liens hypertextes qui vont être visibles en fonction de la couleur d'arrière plan si ils ont été visités ou non. Leur visibilité sera indirectement déterminée selon la manière dont l'utilisateur interagit avec eux. Le problème avec cette attaque est qu'elle est extrêmement improbable et peu productrice.

Michal Zalewski a développé un POC qui utilise cette technique mais en rendant son exploitation plus réaliste par l'utilisation d'un jeu de type Asteroids. Des astéroïdes foncent vers le vaisseau et il faut cliquer sur ceux ci pour les détruire. Les astéroïdes qui sont visibles sont en fait les liens visités, les autres ont la même couleur que le fond. On ne peut donc cliquer que sur les liens visibles. A la fin du jeu, on est capable de donner une liste de sites visités. Il est possible de tester ainsi des centaines de lien en très peu de temps.

C'est la première exploitation réaliste de cette attaque. Vous pouvez tester son POC ici :

http://lcamtuf.coredump.cx/yahh/

0 commentaire

Laissez un commentaire