Heute ist scheinbar der Tag des Spams. Genauso wie im vorherigen Artikel handelt dieser über Spam, genauer Facebook Spam und eine aktuelle Kampagne mit dem Titel “Caught on Webcam”.
Einen link dazu gibt es natürlich nicht, aber die Domain ist einfacherweise mit den drei Wörter, – statt Leerzeichen unter einer .info-Domain zu erreichen.
Ruft man die Seite auf, präsentiert sich auf dem Bildschirm folgender Inhalt:
Auf den ersten Blick ist es nicht sonderlich spammy, sondern eher eine solide Altersfreigabe, da man den Inhalt ja vor jungen Augen schützen muss. Der geneigte Surfer wird sich dann gleich auf den “Verify”-Button stürzen um an den Inhalt zu kommen, wegen dem er ja gekommen ist.
Aber Vorsicht, denn genau hier lauert die Gefahr bzw. der Trick:
In obigem Screenshot habe ich mit Firebug den Facebook-Like-Button aka “Gefällt mir” sichtbar gemacht.
Würde man sich also zielstrebig auf den Verify-Button stürzen, merkt man lediglich in seinem Profil, dass man eine doch eher unliebsame Seite “mag”.
Dies ist die bisher ausgefeilteste Taktik, die ich bei bisherigen Facebook-Clickjacking-Seiten gefunden habe. Wie ich damals geschrieben hatte, ist mittlerweile ein alter Hut.
Geschickt in diesem Beispiel ist auch, dass von der Startseite aus, eine weitere Datei vom Server geladen wird, die main.php. Ein Aufruf selbiger gibt nur die Meldung mit einem Link zur Startseite aus. Scheinbar will da jemand nicht, dass man direkt an den Quellcode kommt (weswegen auch der Rechts-Klick mit einem Alert-Fenster überschrieben wurde).
Der Button wird mit folgendem Code eingebunden und positioniert:
<div z-index:12; id="verify-button">
<div style="z-index:2; filter:alpha(opacity=0); -moz-opacity:0.0; -khtml-opacity: 0.0;opacity: 0.0;">
<iframe src="http://www.facebook.com/plugins/like.php?href=caught-on-webcam.info%2F&layout=button_count&show_faces=true&width=450&action=like&colorscheme=light&height=21" allowTransparency="true"></iframe>
</div>
<div style="z-index:1;"><img src="http://i53.tinypic.com/dm6wjk.gif" ></div>
<div style="z-index:3;"><img onclick="share()" style="cursor:pointer" src="http://i54.tinypic.com/2ue4qy9.gif" ></div>
</div>
Die hervorgehobenen Stellen im obigen HTML-Code dienen allesamt zum Versteck und Positionierung des Like-iframes. Aus Lesbarkeitsgründen habe ich Angaben die Höhe, Breite, Umrandung und Co weggelassen.
Neben den unterschiedlichen CSS-Attributen opacity und filter:alpha und dem allowTransparency=”true” wird über eine geschickte Nutzung des z-index der “Verify”-Button in den Hintergrund (z-index: 1), der iframe darüber (z-index: 2) und darüber der valide (z-index: 3) “Share”-Button gelegt.
So dient alles seinem Zweck und der Nutzer klickt entweder auf “Gefällt mir” oder auf “Share” und der Spammer hat sein Ziel erreicht.
Das Wichtige an obigem Beispiel ist aber, dass die Seite wie eine App gestaltet ist und man eben über an die main.php nicht direkt herankommt.
Was ich mir gut vorstellen kann oder ich selbst machen würde ist, dass man mit
if($_SERVER["HTTP_REFERER"] == 'http://www.myspammysite.info/') {
// clickjacking content
} else {
// good content
}
den direkten Aufruf unterbindet und somit eine eingehendere Analyse vermeidet. Wird dies noch mit einer IP-Blacklist erweitert, die den internen Adressen des Facebook-Unternehmens entspricht, dann kann auch niemand verdacht schöpfen.
Bis zum Schrieb dieses Artikel konnten so knapp 65.000 (genauer 65,975) Besucher veräppelt werden.
Dies ist gerade mal wieder eine schöne Attacke die unter dem Radar fliegt. Viele von diesen geschickt ausgearbeitet und noch ein wenig modifiziert und man kann ein ziemlich großes Netzwerk damit aufbauen, ohne, dass irgendjemand etwas davon mitbekommt
Wie immer dient dieser Post als Proof-Of-Concept und sollte natürlich nicht nachgemacht werden.
Das Archiv der Originaldateien könnt ihr hier herunterladen: caught-on-webcam.info-Dateien (sowohl die index.html als auch eingebunde main.php)


