Il est possible de télécharger des fichiers sur la machine d’un visiteur de notre site web sans qu’il s’en rende compte.
Pour cela, nous utilisons le fait que son navigateur enregistre sur sa machine les images des sites web que l’utilisateur visite pour éviter de les télécharger plusieurs fois si l’utilisateur recharge la page. On appelle cela la mise en cache.
Voici le code de page.html
, on y affiche un message puis une image mais cette est non visible car on utilise l’attribut hidden
.
<html>
<head>
<title>Page Attaquant</title>
</head>
<body>
<p>Bienvenue sur ce site !</p>
<img src="image.png" hidden>
</body>
</html>
Initialement, le cache de la victime est vide. On utilise l’outil MZCacheView pour le visualiser.
La victime se rend sur notre site http://attaquant.com/page.html
.
Malgré qu’aucune image ne soit visible, l’image image.png
a été chargé par le navigateur et sauvegardé sur la machine de la victime.
On retrouve bien notre fichier image.png
que l’attaquant voulait télécharger sur la machine de la victime.
On peut accéder au nom de cette image sur la machine, elle est stocké sous un nom bien particulier, sans extension.
On peut alors, depuis la machine de la victime, se rendre à l’emplacement où le navigateur enregistre le cache, ici Mozilla Firefox : C:\\Users\\{user}\\AppData\\Local\\Mozilla\\Firefox\\Profiles\\{dossier profil}\\cache2\\entries