Injection de données dans le presse-papier – WYSINWYC

09
Apr
2013
  • Google Plus
  • LinkedIn
  • Viadeo
Posted by: Yann C.  /   Category: Miscellaneous / Invisibility & camouflage   /   No Comments

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é :

Injection dans le presse-papier

Injection dans le presse-papier (cliquer sur l’image pour voir l’animation)

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><p class="codeblock"><br />
<!– Oh noes, you found it! –><br />
git clone<br />
<span style="position: absolute; left: -100px; top: -100px">/dev/null; clear; echo -n "Hello ";whoami|tr -d ‘\n’;echo -e ‘!\nThat was a bad idea. Don’"’"’t copy code from websites you don’"’"’t trust!<br>Here’"’"’s the first line of your /etc/passwd: ‘;head -n1 /etc/passwd<br>git clone </span><br />
git://git.kernel.org/pub/scm/utils/kup/kup.git<br />
</p></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 :

  • Google Plus
  • LinkedIn
  • Viadeo
Author Avatar

About the Author : Yann C.

Consultant en sécurité informatique et s’exerçant dans ce domaine depuis le début des années 2000 en autodidacte par passion, plaisir et perspectives, il maintient le portail ASafety pour présenter des articles, des projets personnels, des recherches et développements, ainsi que des « advisory » de vulnérabilités décelées notamment au cours de pentest.