Un PoC intéressant fait quelque peu parler de lui depuis les deux derniers jours, bien que la technique n’est plus toute jeune. Celui-ci concerne les copier/coller de données, commandes et syntaxes que l’on peut trouver de part le net. Il est en effet possible d’injecter des commandes arbitraires dans le presse-papier des copier-colleurs un peu distraits (clipboard-poisoning).
Ce mécanisme/vecteur d’attaque a été nommé en 2008 de WYSINWYC, pour What You See Is Not What You Copy.
Toute personne un tant soit peu habituée à glaner des informations techniques de part le net (en particulier dans les métiers de l’informatique) a pris l’habitude de copier/coller toute sorte d’information sans en analyser le contenu.
Sachez qu’il est possible de corrompre les données vues dans une page web, que vous pensez copier, vis-à-vis de celles réellement placées dans votre presse papier.
La technique consiste à camoufler dans une balise HTML de type “span” invisible des syntaxes complémentaires. L’illustration suivante explique clairement le procédé :
Jann Horn illustre ce PoC en camouflant les commandes arbitraires dans un “span” hors de la fenêtre d’affichage. Le code xHTML permettant cela est similaire au suivant :
[html]</p>
<p>&lt;p class=&quot;codeblock&quot;&gt;<br />
&lt;!– Oh noes, you found it! –&gt;<br />
git clone<br />
&lt;span style=&quot;position: absolute; left: -100px; top: -100px&quot;&gt;/dev/null; clear; echo -n &quot;Hello &quot;;whoami|tr -d ‘\n’;echo -e ‘!\nThat was a bad idea. Don’&quot;’&quot;’t copy code from websites you don’&quot;’&quot;’t trust!&lt;br&gt;Here’&quot;’&quot;’s the first line of your /etc/passwd: ‘;head -n1 /etc/passwd&lt;br&gt;git clone &lt;/span&gt;<br />
git://git.kernel.org/pub/scm/utils/kup/kup.git<br />
&lt;/p&gt;</p>
<p>[/html]
Imaginez les conséquences que de tel copier/coller non-contrôlés pourraient avoir? A combien de reprise avez-vous copié/collé des données à la va-vite sans les contrôler au préalable? Les conséquences pourraient être dramatiques et peuvent s’appliquer à un grand nombre de cible comme des requêtes SQL avec un “DROP DATABASE” intégré ou encore des commandes Unix avec un “rm -rf /*”…
A noter que le triple-clics sur la sélection envisagée ne fonctionnera pas. En effet, le triple-clics (qui permet de sélectionner une chaîne de caractères/phrase complète d’un bout à l’autre) sélectionnera qu’une partie des données. La sélection est stoppées par la balise “span” cachée.
Il convient donc de sensibiliser les utilisateurs adeptes du copier/coller, en passant par exemple via un Bloc-Note (notepad) pour visualiser concrètement les données du presse-papier, sans un quelconque formatage.
Sources & ressources :