Wordpress-Lücken: TecChannel-Interview mit dem Entdecker

Wie vertrauenswürdig ist der Patch-Wurm?

TecChannel: Wie bereits erwähnt, haben Sie einen Wurm geschrieben, der sich der Sicherheitslücken annimmt und diese beseitigt. Aber wie können Administratoren sicher sein, dass Ihr Wurm auch keinerlei Schadcode mit sich trägt?

Benjamin Flesch: Das ist natürlich eine gute Frage! In meinem Post habe ich extra "Trust me" dazugeschrieben und ich finde es echt toll, dass viele Admins genau dies tun. Zudem verbreitet sich diese Variante des Wurms nicht von selbst weiter und erklärt genau, was wann und wie genau geschieht. Der Ablauf funktioniert so:

  • Der Admin besucht meine Homepage über einen Link aus seinem Wordpress Adminpanel heraus: Meine Seite erkennt ihn an seinem Referer (der /wp-admin/ enthält).

  • Ein <div>, generiert durch die main.js, erscheint und teilt dem Admin Informationen über die Lücke mit. Anschließend erhält er die Auswahlmöglichkeiten "Close" oder "Secure my Blog".

  • Bei einem Klick auf Letzteres wird der Admin auf sein eigenes Blog geleitet. Anschließend nutzt ein Link die XSS-Lücke in upload.php aus, um dadurch das Script stage1.js im Kontext des Adminpanels zu starten.

  • Danach startet ein Setup, das in drei Schritten die Scripts upload.php, options.php und link-import.php mit Workarounds versieht. Der Admin erhält den jeweiligen Code angezeigt und muss mit einem Klick auf "Skip" oder "Apply this Patch" eingreifen.

  • Nach dem Patch wird der Admin gefragt, ob er den Wurm weiterverbreiten will (durch ein paar Zeilen PHP-Code in seinem Template), und ob er mein Blog verlinken will. Beides ist natürlich freiwillig.

  • Damit ist das Script beendet und die Lücke geschlossen.

Für die, denen das nicht reicht: Da der Wurm auf JavaScript basiert und ich kein schlechtes Gewissen habe, wenn ihn jemand lesen will, ist der Sourcecode natürlich auf meinen Server gelagert. Der Dialog, der den Admin begrüßt, lässt sich hier herunterladen, der Code, der anschließend ausgeführt wird und die Sicherheitslücken schließt, liegt hier.

Übrigens ist der Code mit Absicht unordentlich, damit nicht morgen Hunderte Blogroll-Links hinzufügende Miniwürmer durch das Netz kriechen.