Tom’s Diner 2.0.1

06. Februar 2006

Und mein Ärger mit dem Plugin WP-Contactform

Nachdem mein Blog seit Freitag Nacht unter Dauerfeuer eines [zensur] Spammers lag, musste ich erst das Blog abschalten und dann den kompletten Webspace putzen. Nebenbei ist dann auch noch eine E-Mail-Adresse drauf gegangen (blog @ neun12.de), wer diese irgendwie irgendwo gespeichert hat, kann sie getrost löschen. Es gibt sie nicht mehr.

Was ist passiert?

Ich habe hier im Blog wie viele andere auch das WP-Contactform Plugin von Ryan Duff. Es ist ein einfaches Kontaktformular welches man mit einem Quicktag an beliebiger Stelle in sein Blog einfügen kann. Ich habe es normalerweise an zwei Stellen hier im Blog untergebracht: Unter den Menü-Punkt “Kontakt” und dem Menü-Punkt “About” (welchen es nicht mehr gibt).
Diese Kontaktformulare, oder Formmailer wie sie auch genannt werden, haben nun eine Schwachstelle. Fügt man bestimmte Daten an bestimmten Stellen im Formular ein, kann man dieses überlisten. Als Ergebnis bekommt der Spammer dann die E-Mail-Adresse raus an die normalerweise die Daten aus dem Kontaktformular geschickt werden.
Das alleine ist nicht so schlimm. Adressensammler gibt es zu hauf im Internet. Allerdings kann der Spammer nun mit weiteren modifizierten Daten so Spammails verschicken. Bei mir hat er dies im Minutentakt gemacht, so das ich am Samstagmorgen bereits 168 Spammails im Briefkasten hatte. Über die BCC-Funktion wurden diese Mails wohl auch noch in die weite Welt hinaus geblasen.

Wie kam der denn an die URL?

Die URL des Kontaktformulars hat der Spammer mit einem Brut-Force Angriff heraus bekommen. Brute Force bedeutet nichts weiter als das er einfach einige “übliche” URLs durchprobiert hatte. Auf vielen Webseiten gibt es Seiten die sich kontakt.html, contact.php, about.htm, login.php oder ähnlich nennen. Der Spammer hat sich also zu Nutze gemacht das viele ihre Dateien nach Schema F benennen.

Mir wurde dabei zum Verhängnis das ich die so genannten “Sprechenden URLs” bei WordPress eingeschaltet habe. Der Spammer hat einfach alle typischen URLs durchprobiert und hatte bei neun12.de/about/ bereits Erfolg. Ab da wusste er wo sich das Kontaktformular befand. Der Rest war dann nur noch reines Ausprobieren bis es geklappt hatte und schon wurde mein Blog zur Spamschleuder.

Was habe ich dagegen gemacht?

Als erstes einmal natürlich WordPress auf den letzten Stand der Dinge gebracht. Es läuft nun die aktuelle Version 2.0.1. Dies hat mit dem Spam-Angriff an sich nichts zu tun da der Angrifff über ein Plugin geschah. Trotzdem kann man nie wissen und aktualisieren tut gut. Geht auch recht flink, ist ganz einfach und dauert nur ein paar Minuten.

Nachtrag:
Silke Schürmann hat in ihrem Blog darauf hingewiesen das die Version 1.3 von WP-Contactform offensichtlich bereits gegen solche Angriffe abgesichert sei.
Nun kann ich nicht mehr 100%ig sagen welche Version im Blog installiert war bevor ich es runter geputzt habe. In einer Sicherung des Blogs auf meiner Festplatte habe ich die Version 1.3. Es kann aber möglich sein, dass das Plugin, welches von dem Angriff betroffen war, noch in der Version 1.2 vorlag!
Auf alle Fälle sollte man das Plugin updaten. Für den Betrieb mit WordPress 2.0 ist ohnehin die Version 1.4.3 nötig.

Als nächsten, und wohl wichtigsten Schritt, habe ich WP-Contactform deaktiviert. Ich rate jeden der dieses Plugin verwendet es ebenfalls zu deaktivieren! Vor allem dann, wenn man, so wie ich, sprechende URLs verwendet. Ganz besonders dann, wenn das Kontaktformular auf eine Unterseite liegt und z.B. über www.domainname.tld/kontakt oder /contact, /about, /uber oder ähnlichem zu erreichen ist! Es ist nur eine Frage der Zeit bis die Spammer das Kontaktformular irgendwo im Blog gefunden haben.
Das betrifft auch die Blogger, die keine sprechenden URLs verwenden! WordPress verwendet dann etwas das in etwa so aussieht: /?p=zahl. Wobei die Zahl die Nummer des Eintrages ist. Und was macht man als erstes wenn man ein Blog einrichtet? Richtig, Kontaktseiten schreiben (verf**** Impressumspflicht!).
Demnach müssen Spammer oft nur 10-20 Versuche starten bis /p=x den richtigen Verweis auf das Kontaktformular enthält.

Wer nun denkt er sei in Sicherheit weil er ein eigenes, selbst geschriebenes Kontaktformular hat, der irrt gewaltig. Einfach mal bei Google nach charleses3299@aol.com suchen. Es werden ca. 40.800 Seiten gelistet wo dieser Spammer es versucht hat. Und das sind nicht nur Blogs. Genau genommen werden die gehackten Kontaktformulare dabei noch nicht einmal aufgelistet. Es sind lediglich Gästebücher und Foren gelistet.
Der Trick den dieser Spammer anwendet betrifft also (fast) alle Formulare in denen man seinen Namen, E-Mail und Webadresse angibt und diese Daten automatisch an eine E-Mail-Adresse weitergeleitet werden!

Weiterhin habe ich meinen Unterseiten keine so aussagekräftigen Titel mehr verpasst. Die About-Seite erreicht man nun nicht mehr über neun12.de/about. Gleiches gilt für die Kontakt-Seite und alle anderen Seiten auf den evt. mal ein Kontaktformular erscheinen könnte.

Ich werde demnächst noch versuchen Ryan Duff zu kontaktieren und ihn auf das Problem aufmerksam machen. Denn selbst in der neuesten Version von WP-Contactform bleibt der Fehler bestehen. Das Problem bei diesem Plugin ist, dass die E-Mail-Adresse nicht richtig geprüft wird.
Das Plugin prüft zwar die E-Mail-Adresse und entfernt anscheinend auch dubiose Zeichen. Allerdings scheint dies nicht richtig zu funktionieren. Um die Fehlerquelle im PLugin ausfindig zu machen, müsste man allerdings genau wissen wie der Spammer vorgegangen ist. Ich habe dazu zwar eine Vermutung, bin mir aber nicht 100%ig sicher ob er es auch so gemacht hat.

Somit wäre eine neue Runde im Krieg Menschheit gegen Spammer eröffnet. Falls jemand genaueres dazu weiss wie die Kontaktformulare überlistet werden oder Links hat, bitte ich um Hinweise in den Kommentaren! Danke schon mal.

Ralf

Es existieren 14 Kommentare für diesen Eintrag:

1

[...] insbesondere zum WordPress Plugin WP Contactform, das an sich ziemlich beliebt ist. Toms Diner zeigt, warum das Teil brandgefährlich sein kann. verwandte Artikel: [...]

2
Robert Hartl schrieb:

Danke Tom für diese erste Sicherheitsverbesserung.

3

[...] Ich verwende das Plugin WP Contactform von Ryan Duff zwar nicht auf dieser Seite und auch sind mir noch keine Spammails ins Haus geflattert, aber aufschlussreich ist der Beitrag von Tom auf jeden Fall: Toms Ärger mit dem Plugin WP-Contactform. Vorbeugend hab ich mich mal an seine Empfehlungen gehalten. [...]

4
Marcel Widmer schrieb:

Vielen Dank für die umfassende und (für mich als Nicht-Profi nachvollziehbare) Beschreibung. Jetzt ist mir klar, wieso andere und ich selbst ab und Mails über meine Mailadresse erhalten, obwohl ich diese 100%ig nie verschickt habe. Ich werde mein Blog baldmöglichst so umbauen, dass die SPAM-Heinis nicht mehr durch die Hintertür rein kommen!

5

[...] Hat also Tom Diner nur das Plugin nicht in aktueller Form eingebaut gehabt? [...]

6

Äh nur so am Rande angemerk … bcc: enthält cc: das ist also bereits abgedeckt. ;-)

7
Ralf schrieb:

@Silke:
Danke für den Hinweis mit den Versionen. Das Backup des Blogs welches ich hier auf der Festplatte habe hat ebenfalls die Version 1.3. Ich kann aber halt nicht 100%ig ausschließen das noch die Version 1.2 im Web stand.

Hab jetzt erstmal den Artikel geändert/ergänzt und auch vorerst meinen ganz schnell zusammengebastelten Lösungsansatz raus genommen.

8
DonKult schrieb:

Marcel Widmer sagt es bereits: schöne Beschreibung des Problems. Aber was mir fehlt (okay, anderen nicht) ist die Technik dahinter. Wenn du nämlich schreibst, es wären “(fast) alle Formulare” betroffen, dann sehe ich das ohne technischen Hintergrund als reichlich übertrieben an. Im Grunde kann ich mir im Moment nur eine “Lösung” vorstellen, die vorraussetzen würde, dass “(fast) alle Formulare” den Header-Parameter ungeprüft an mail() übergeben und das wäre grob fahrlässig und auch ein wenig unrealistisch. Ansonsten sehe ich auf die Schnelle keine Möglichkeit. Also lass (wenn möglich) mich (und falls es noch jemanden in dieser Welt interessieren sollte dann lass auch den) nicht dumm sterben… ;)

9
Ralf schrieb:

DonKult? Als erstes gefällt mir deine E-Mail-Adresse ganz und gar nicht. Ich reagier da immer ein wenig pickelig wenn sich jemand eine Mail-Addy mit meiner Domain als Teil der Addy registriert. Ganz besonders dann, wenn derjenige nur eine Mail-Addy angibt und sonst nichts. Und ganz dolle dann, wenn die Mail-Addy ungültig ist.

Dann überkommt mich immer so eine drastische Erklärunlust.

Für die Fälle habe ich hier unter der Eingabebox nen sehr zutreffenden Satz stehen…

10
DonKult schrieb:

Sehr freundlich… So mag ich das :/ Also erstens mal hab ich nunmal keine Webseite/Blog oder sonst was vorzeigbares was ich angeben könnte, daher ist Website/Blog auch leer. Aber wenn hier nur Leute kommentieren dürfen mit sowas, dann nimm optional weg, dann weiss ich wenigstens gleich, dass ich nicht erwünscht bin und muss mir das nicht erst nachträglich sagen lassen.
Was die eMailadresse angeht: Die ist gültig. GMail a.k.a. GoogleMail unterstützt ein Plus als Trennung zwischen Benutzername und frei wählbarem Anhängsel. Ich nutze das unteranderem um eMails automatisch nach Absender zu sortieren und geb daher grundsätzlich nie meinen reinen Benutzernamen sondern immer gleich noch ein Anhängsel (normalerweise die URL) mit an, für den Fall das mal Mails kommen sollten, die es sich lohnt zu archivieren. Aber die hab ich von hier anscheinend nicht zu erwarten, ich geh dir ja eh nur auf die Nerven, also nichts für ungut, bin schon weg. Und ich wage die Profezeihung, dass du mich so bald nicht wiedersehen wirst, den so schnell wie dein Blog ist noch nie einer wieder aus meinem RSS-Reader rausgeflogen…

11

[...] Das heißt, eigentlich ist es weitgehend die Methode vom WP-Contactformular von Ryan Duft das in Tom’s Diner letzthin schon Thema war. Da mein Server aktuell von den Spammern schon über das Limit getrieben wird, habe ich mir erlaubt, die Dienste von Rapidshare in Anspruch zu nehmen. Danke für den Service. Die Downloadlinks befinden sich unterhalb des Viewports, aber Ihre werdet es schon finden. [...]

12
Andreas schrieb:

Den Spamfilter-Dienst von eleven.de kann ich nur wärmstens empfehlen. Wenn Du den verwendest müsstest Du in solchen Fällen wahrscheinlich nicht eine gerne verwendete E-Mail-Adresse “abschalten”. Ist für Privatleute kostenlos.
http://expurgate.net/de/products/expurgate/private/pfunction/

13
Ralf schrieb:

Danke für den Hinweis. Wenn ich das jetzt richtig verstehe, dann ist dieses expuregate ein externer Spamfilter.
Ich hatte aber das problem, dass Spam über meine Webseite verschickt wurde.

Das Problem hatte sich nach einem Update gelöst und bis dato ist auch kein weiterer Vorfall in dieser Richtung passiert.

14

BCC Spam…

Nun hat es mich doch erwischt und jemand, der über einen vietnamesischen Server gekommen ist, hat meinen Root-Server als Spam-Schleuder missbraucht, über meinen Server ca 10 Gigabyte an Spam versendet und mir eine Menge Arbeit beschert. Alles, was d…