WordPress fremde Werbung als Overlay über den Bildern

Lieber Besucher von Taste-Of-IT,

Mir ist aufgefallen, dass hier auf im Taste-Of-IT WordPress Blog, über den Bildern eine Werbung angezeigt wird, die ich nicht aktiviert habe. Diese sieht man nur ohne Adblocker, den bitte jeder  Besucher hier auf Taste-Of-IT, deaktivieren sollte um uns zu unterstützen – Danke.

Für alle die von diesem Werbedieb belästigt wurden, möchte ich mich ganz höfflich und tiefst verbeugt entschuldigen. Wir haben keine bösen Absichten und betreiben diesen Blog in der Freizeit als Hobby, mit Spaß und Freude an der Informationstechnologie. Wir teilen hier unsere Eindrücke, Informationen und Wissen.

Werbedieb durch Overlays mit Javascript im Artikel über den Bildern

So oder ähnlich konnte man die Fremdwerbung über unseren Bildern sehen, wenn man entweder mit der Maus drüber ging (hover) oder gar draufklickte. Im Hintergrund ist schwach das eigentliche Bild einer SSD zu sehen.

Werbespam - Werbedieb über Bilder

Werbespam – Werbedieb über Bilder

Nach dem Klick gelangte man dann auf irgendwelche Seiten mit Werbung für Produkten und Dienstleistungen.

Die Suche nach dem Verursacher

Als ich das sah dachte ich natürlich erst mal über einen gehackten WordPress Blog und überlegte wodurch das passiert sein könnte. Insgesamt dauerte alles mehrere Stunden bis ich die Lösung fand (siehe unten). Mein Doing in Stichpunkten (Reihenfolge muss nicht stimmen):

  • Test der Artikel in anderen Browsern -> selbes Problem
  • Test der Artikel auf anderen Rechner, Systemen mit verschiedenen Browsern -> selbes Problem
  • Onlinescan des Blogs mittels Sucuri https://sitecheck.sucuri.net – keine Malware oder Blacklist
  • Virenscan der Webseite direkt auf dem Server – kein Viren. oder Trojanerfund
  • Download der Seite und scann mittels Trend Micro, McAfee, MS Security Essential – kein Auffälligkeiten
  • Malwarebytes und Spy Bot Search and Destroy über Verzeichnis der Browser und der Offlinedateien laufen lassen – kein Fund
  • wieder Recherche im Netz mit Hinweis auf Browseraddins bzw. Plugins in Firefox oder Internetexplorer bzw. Chrome, war recht unwahrscheinlich da auf Testgeräten unterschiedlich Addins verwendet wurden.
  • Addins im Browser nacheinander deaktiviert
  • Browser Reset durchgeführt
  • Browser neuinstalliert
  • WordPress in verdacht und Plugins einzeln deaktiviert bzw. alle deaktiviert – Problem besteht weiterhin was mich auf den Content brachte
  • im Testsystem -> WordPress neuinstalliert und die Datenbank vom aktiven Block importiert – Fehler besteht weiterhin
  • mit den Entwicklertools von Firefox bzw. Internetexplorer den Code der Artikel angehsehen mit diesem Ergebnis:
    JavaScript Ads Code im Quelltext

    JavaScript Ads Code im Quelltext

     

  • Werbespam von visadd, akamaihd, freeservice und wie sie alle heißen

    fremde WerbeURL

    fremde WerbeURL

  • mittels Windowssuche und auf dem Server mittels find und grep in allen Dateien nach eine bzw. Teile der URL’s gesucht – ohne Erfolg

Das Fazit bis hier her: Es ist kein Virus, Trojaner oder Malware im eigentlichen Sinn. Die Dateien scheinen in Ordnung zu sein, also muss das Problem in der Datenbank stecken. Weiter geht’s :

  • einfach einen Artikel in phpMyAdmin der Tabelle _Posts, in der die Artikel gespeichert werden, geöffnet (post_Content)
  • hier dann fündig geworden und einen langen JavaScript Code gefunden
  •  er fing immer mit foxlingojs an und sah z.B. so aus:

    Foxlingo JavaScript

    Foxlingo JavaScript

  • im Netz nach etwaigen Problemen gesucht und fündig geworden

Die Ursach ist das Addin Foxlingo mittels dem Webseiten komplett oder aber nur Teile in andere Sprachen Inline übersetzt werden können. Ja das habe ich tatsächlich im Firefox im Einsatz.

Die Lösung sieht dann wie folgt aus:

  • Addin Foxlingo deaktivieren und entfernen

    Foxlingo Addin löschen

    Foxlingo Addin löschen

  • Suche in der Datenbank nach allen Einträgen in den Posts:

MySQL Suche nach dem Schadcode im Content der Artikel von WordPress. Hier kurz über phpMyAdmin mit folgendem Select Statement:

SELECT * FROM `toi_posts` WHERE post_content like ‚%<foxlingojs%‘

Als Ergebnis wurden mir 1789 / 5215 Beiträge angezeigt in denen der Code bzw. das JavaScript integriert ist.

Darunter auch merkwürdige Statistikseiten wie die von http://attl.staticjs.net, ebenfalls im <script…> </script> Tag enthalten. Hier kommt nur eine automatische Löschung mittels Script oder Befehl in Frage, ansonsten wäre es zu Zeitintensiv. Dies wäre z.B. mit folgenden Mittel möglich

  • MySQL Update und Replace Befehl – habs probiert, jedoch ist das Script recht komplex
  • Export der Tabelle und mittels Perl und Regex auf dem Server entfernen und importieren – nicht probiert
  • Export der Tabelle und z.B. mittels Notepad++ und Regex entfernen – jup habe ich hier und geht schnell:

Hier ein Regex für das Suchen und Ersetzen aller Strings zwischen den Tags <script und </script> von JavaScript im Notepad++:

Notepad++ Regex Suche Ersetze

Notepad++ Regex Suche Ersetze

Die Datei (ca. 20MB) muss in Unix / UTF-8 w/o BOM (Kodierung ->  UTF-8 ohne BOM) gespeichert werden. Am besten selbe Datei verwenden und als _clean.sql abspeichern. Danach Prüfung mit z.B. dem OpenSource Tool WinMerge (File->Convert Line Endings to Windows), um die Unterschiede zu prüfen.

Achtung – Das Ganze setz natürlich voraus, dass kein anderer Scriptcode in ähnlicher Form selbst verwendet wird.

Ich habe das zuvor auf einer Testseite und mit Backupdaten mehrfach erfolgreich durchgeführt, sodass ich erst danach die Livetabelle bearbeitet habe. Nun ist dieser Blog wieder Werbediebfrei und zeigt keine ungewollte Werbung über den Bildern an. Zudem laden die Seiten wesentlich schneller. Ich hoffe ihr besucht ins auch in Zukunft so zahlreich und kommentiert weiterhin unsere Posts – thx.

 

Anmerkung – soweit ich es beobachten konnte waren alle Posts / Artikel um das Jahr 2013 / 2014 geschrieben worden. D.h. das aktuelle Addin macht hier wohl keine Probleme mehr, was auf eine Lücker vergangener Versionen hindeutet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.