486887_mouseIn den vergangenen Minuten waren die Timelines auf Twitter prall gefüllt mit „Don’t Click“ Statusupdates, die alle auf diese Seite verweisen. Auch mich hat es natürlich erwischt und ich hab mal nachgeforscht, wie die Technik des kleinen Hacks funktioniert. Nach kurzer Analyse gibts auch schon die Erklärung: Hinter dem Scherz steht keine Sicherheitslücke oder andere bedrohliche Dinge, sondern ein geschickter Einsatz von HTML und CSS.

Betrachtet man den Quelltext der Seite genauer, so findet man gleich am Anfang einen Iframe mit der URL „http://twitter.com/home?status=Don’t Click: http://tinyurl.com/amgzs6“. Dieser ruft eine ganz normale Twitter-Startseite auf, bei der das gewünschte Statusupdate bereits in das Eingabefeld eingegeben ist. Diese Technik benützten viele Twitter-Mashups und Dienste um keine API-Zugriffe zu benötigen. Doch wie funktioniert das Absenden des Tweets?

Ganz einfach sogar! Der Iframe wurde vollständig transparent gemacht und genau soweit über den Browserrand nach links geschoben, dass sich der „update“-Button der Twitterseite über dem „Don’t click“-Button der eigentlichen Seite befindet. Man klickt also nicht wirklich auf den sichtbaren Button sondern bestätigt unwissentlich den unsichtbaren Button der Twitterseite. Über diese Weise wird das Statusupdate dann auf Twitter gepostet.

Ich hab den Code nochmal ein wenig verändert, um das Ganze deutlicher zu machen:

 

Iframe mit reduzierter Transparenz:

bild-51

 

Iframe komplett im Bild mit reduzierter Transparenz:

bild-4

 

UPDATE: Twitter hat mitlerweile das Clickjacking-Lücke gefixt. Probleme dieser Art sollten in Zukunft nicht mehr auftreten. Falls ihr noch Interesse an dem Sourcecode habt, diesen findet ihr auf Pastie.