Moderne Browser können mit Hilfe von JavaScript sowohl lesend als auch schreibend auf die Zwischenablage des Benutzers zugreifen, diese also auch manipulieren. Die zugrunde liegende Technik ist bereits ein alter Hut, doch erst seit kurzer Zeit kursieren immer mehr Angriffe (unter dem Namen „PasteJacking“) im Netz, die sich diese Möglichkeit nachteilig für den unbedarften User zu Nutze machen. Eine Implementierung in JavaScript ist dabei banal.
Auf der bösartigen Seite wird lediglich folgendes Script eingebunden:
27670b8ba9840e688369822a3fcfb2d9
Kopiert man sich nun beliebigen Text von einer derartigen Seite, so landet stets (bei dieser Implementierung unabhängig vom kopierten Text) der unerwünschte String in der Zwischenablage. Statt "evil command" kann man sich nun jede Menge unschöner Dinge einfallen lassen. Fatal wird das Ganze, wenn ein Zeilenumbruch am Ende der Zeile zur sofortigen Ausführung des Codes dient:
27670b8ba9840e688369822a3fcfb2d9
Auch ist es ein leichtes, die Konsolenausgabe zurückzusetzen, sodass der Benutzer gar nicht unmittelbar mitbekommt, was er da eingegeben hat. So ist es beispielsweise denkbar, beim Kopieren eines harmlosen Code-Snippets sich im Vorbeigehen seine Partitionen zu zerschießen.
27670b8ba9840e688369822a3fcfb2d9
Auch ohne JavaScript kann die Zwischenablage (in anderer Form) manipuliert werden kann:
27670b8ba9840e688369822a3fcfb2d9
Markiert man den gewünschten Text, so landet beispielsweise im aktuellsten Firefox (v. 45.0) nicht dieser sondern der dahinter liegende Text in der Zwischenablage.
Beide Methoden kann man hier live ausprobieren. Hier die JS-Variante:
See the Pen Pastejacking #1 by David Vielhuber (@vielhuber) on CodePen.
Sowie die CSS-Variante:
See the Pen Pastejacking #2 by David Vielhuber (@vielhuber) on CodePen.