Base64-codierte Links aus WordPress-Themes entfernen

Jeder, der einmal WordPress-Themes aus dem Web gesaugt hat und sich den Code genauer angesehen hat, wird dabei höchstwahrscheinlich schon einmal auf ein ziemlich unfaires Verhalten von Theme-Designern gestoßen sein: codierte Links. Irgendwo im Quelltext, meistens in der footer.php, häufig aber auch in der header.php und sogar in der functions.php finden sich solche Codeschnipsel: eval(base64_decode('aHR0cDovL3d3dy52YXNjbzcuZGU='));. Und solch chiffrierte Links bergen nicht unerhebliche Risiken – werdet sie los.

Warum das Ganze? Viele Entwickler wollen einen Link im Rahmen der CC-Lizenz. Dagegen ist absolut nichts zu sagen. Viele Anwender löschen die Links – und das dürfte einigen Entwicklern aus verständlichen Gründen auf den Nerv gehen, es ist schlicht unfair. Wenn aber Links oder gar PHP-Code verschlüsselt wird, hört der Spaß auf.
Ich habe mich an zwei Links gestört, von denen ich den Verdacht habe, dass Google meinen PR im Gegenzug drückt. Die waren im Klartext im Footer – sie zu löschen zog aber ein sofortiges „Sterben“ des Template nach sich. Ich begann, die Dateien zu durchsuchen, und war geschockt – ich fand massenhaft base64-Code. Und liebe Entwickler: so nicht.
Angefangen mit folgender Zeile im Header: eval(base64_decode('ZnVuY3Rpb24gdGhlbWVfZm9vdGVyX3QoKSB7IGlmICghKGZ1bmN0aW9uX2V4aXN0cygiY2hlY2tfdGhlbWVfZm9vdGVyIikgJiYgZnVuY3Rpb25fZXhpc3RzKCJjaGVja190aGVtZV9oZWFkZXIiKSkpIHsgdGhlbWVfdXNhZ2VfbWVzc2FnZSgpOyBkaWU7IH0gfSB0aGVtZV9mb290ZXJfdCgpOw=='));
Dechiffriert ergab das folgenden Quellcode: function theme_footer_t() { if (!(function_exists("check_theme_footer") && function_exists("check_theme_header"))) { theme_usage_message(); die; } } theme_footer_t();
Hier wird an mehreren Stellen geprüft. Ein Löschen dieser Passage brachte aber noch gar nichts – das Theme starb erneut. In der header.php wurde ein zweites Mal geprüft – aber auch hier half löschen nichts. Warum? Weil in der functions.php nochmals ganze vier (!) Passagen chiffrierten Codes vorzufinden waren – Quellcode, der völlig unkontrolliert ausgeführt wird. Und sowas ist ein absolutes No-Go, denn hier kann jeglicher Schadcode eingeschleust werden. Das WordPress-Plugin TAC checkt Themes auf solche bösen Überraschungen – und Laien tun gut daran, solche Themes umgehend zu löschen. Alle anderen müssen sich teilweise auf eine lange Suche nach tief verwurzelten Funktionen im Theme einstellen – mir war es das wert, weil wir inzwischen lange Zeit mit diesem Template gearbeitet und dutzende Mods daran vorgenommen haben. Aber es hat gedauert – und genervt. Jede einzelne Datei muss gescanned werden, denn überall kann chiffrierter Code versteckt sein.

Posted in WordPress und Web and tagged , , .

3 Comments

  1. hallo timo, vielen dank für diesen beitrag. genau mit diesem thema beschäftige ich mich gerade. ich gebe dir recht, die feine englische art ist es nicht den verweiß auf den theme-entwickler zu entfernen. auf der anderen seite ist es wirklich eine frechheit dieser entwickler ein teuer bezahltes theme so zu „branden“.
    meine frage an dich. ich habe keinen base64-code in der header, footer und functions.php gefunden. der branding text hat sich allerdings in der header.php direkt über „(open) head“ gefunden. das einfache entfernen hat jedoch nichts gebracht (taucht immer wieder im quelltext auf). hast du eventuell andere ideen wo man es mal probieren könnte?

    • Hi Jonathan, sorry für die verspätete Antwort. Hast du schon die index.php durchsucht und ggf. Includes oder Require Once-Tags gecheckt? Oft wird sowas sehr, sehr tief in Unterordnern verwurschtelt, die im WordPress-Editor nicht sichtbar sind. Am besten einmal den ganzen Krempel via FTP herunterladen und lokal durchsuchen mit einem Editor.

  2. Hier noch ein Plugin welches nach Base64 und anderem Themes durchforstet:

    http://wordpress.org/plugins/antivirus/

    Ich habe durch eine veraltete Version von timthumb.php ein Spamscript auf einer WordPress Seite gehabt. Sehr nervig, daher kann ich nur jedem raten timthumb.php auf die neueste Version (2.irgendwas) zu aktualisieren. Timthumb wurde unter anderem in den meisten Themes von Elegantthemes.com eingesetzt und leider habe ich deren Warnmail von 2011 ignoriert und dann jetzt in 2013 den Salat.

    Neueste Version von timthumb gibt es hier: http://code.google.com/p/timthumb/

    Hier noch ein Link für einen base64 decoder: http://www.opinionatedgeek.com/dotnet/tools/base64decode/

    MfG
    Nils

Schreibe einen Kommentar

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