Home Preise Intern Kontakt FAQ
Navigation: FAQ
Wichtige Links
Volltextsuche
Aktueller Status
Alles OK.
Der JPBerlin-Support

Telefon: 030/40 50 51 - 20
(Mo-Fr 9-18 Uhr)

support@jpberlin.de (Mo-So)

Tips zum Verhindern von Spam-Missbrauch der Mailformulare

E-Mail-Injection / E-Mail-Header-Injection

Was ist das?


Der Begriff "E-Mail-Injection" beschreibt das Ausnutzen einer Sicherheitslücke in einer Webanwendung mit dem Ziel, beliebige E-Mails ohne Wissen oder Einverständnis des Betreibers der Webanwendung zu verschicken. Selbst bei einer fest im Code definierten Empfängeradresse ist dies möglich. Diese Sicherheitslücke entsteht meist durch ungenügend geprüfte Parameter, die an die mail()-Funktion von PHP übergeben werden. Ausgenutzt wird das hauptsächlich von Spammern, die unerkannt massenhaft E-Mails versenden wollen.


Wie finden die Spammer die ungesicherten Formulare?


Ähnlich wie Suchmaschinen schicken auch Spammer eigene "Robots" durchs Netz, um auf Webseiten nach solchen Formularen zu suchen. Sie unternehmen den Versuch eine Testmail über diese Sicherheitslücke zu verschicken und werten das Ergebnis dieses Tests aus, um ein anfälliges Formular später weiterzuverwenden.


Wie funktioniert das?


Vereinfacht ausgedrückt besteht eine E-Mail aus einem Header- und einem Body-Teil. Im Header befinden sich u.a. Informationen über den Empfänger, Absender und den Betreff. Im Body der E-Mail steht der eigentliche Mailinhalt. Diese beiden Teile werden durch eine leere Zeile voneinander getrennt.


Wenn jetzt ein Kontaktformular einer Webseite Eingaben vom Benutzer, wie den Betreff oder den Absender, ohne Überprüfung auf Zeilenumbrüche an die mail()-Funktion weitergibt, dann kann ein Angreifer seine eigenen Header-Informationen (z.B. andere Empfänger, eigenen E-Mail-Text) einschleusen. Hier hilft es auch nicht, wenn das Eingabefeld des Webformulars nur eine Eingabezeile bereitstellt. Es ist problemlos möglich Zeilenumbrüche miteinzufügen.


Ein Angreifer benutzt jetzt eines der Felder, die ungeprüft übergeben werden, um eine komplette E-Mail inklusive Header-Informationen, Leerzeile zum Abtrennen des Body-Teils und eigenem E-Mailinhalt einzufügen. Der Rest der ursprünglichen E-Mail wird an die Spam-Mail mit angehangen, ist teilweise auch noch sichtbar, jedoch gibt es für Spammer auch Methoden die übriggebliebene, eigentliche Information aus der E-Mail für den Empfänger des Spams zu verbergen.


Was tut man dagegen?


Sämtliche Informationen, die in den E-Mail-Header gelangen werden (wie z.B. Absender oder Betreff) benötigen keine Zeilenumbrüche. Genau diese Zeilenumbrüche möchte der Angreifer aber einfügen. Man wehrt den Angriff also am Besten ab, indem man das Vorhandensein von Zeilenumbrüchen in diesen Feldern vor dem Abschicken der E-Mail prüft.


Für JPBerliner besteht die Möglichkeit, das JPBerlin Mehlform zu benutzen, um Spam zu vermeiden. Sofern jedoch in einer selbstentwickelten Webanwendung das Mailen sicher gemacht werden soll, müssen die Header-Informationen überprüft werden. Dazu bieten sich folgende Funktionen an:

function removebreaks($value) {
	return trim(preg_replace('=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\\n|\\r)\S).*=i', null, $value));
}
function checkbreaks($value) {
	return $value === removebreaks($value);
}

Die Funktion removebreaks nimmt einen Wert entgegen und schneidet alles hinter einem Zeilenumbruch ab, inklusive des Umbruchs. Zurückgeliefert wird der bereinigte Wert.


Mit checkbreaks lässt sich überprüfen, ob ein Zeilenumbruch vorhanden ist. Damit checkbreaks funktioniert, muss auch die Funktion removebreaks vorhanden sein. checkbreaks liefert die Werte true oder false zurück.


Es bleibt jedem Entwickler selbst überlassen, ob er die Eingaben lieber säubern möchte oder unsaubere Eingaben mit einer Fehlermeldung ablehnt – das Ablehnen von unsauberen Daten ist jedoch zu empfehlen. Jedem seien an dieser Stelle zwei Grundsätze der sicheren PHP-Programmierung ans Herz gelegt: "Traue keinen Daten die einmal beim User waren" und "Daten lieber ablehnen als versuchen, sie zu reparieren".


Weiterführende Links mit detaillierteren Informationen:
E-Mail-Injection auf securephpwiki.com
E-Mail-Injection bei Wikipedia
Heise-Security Artikel zum Thema
Um Formulare möglichst spamsicher zu machen, liefert Ned Batchelder eine gute Hilfestellung.



zurück zur Übersicht


nach oben
Sicherheitslücke in Timthumb macht Blogseiten angreifbar

Eine Sicherheitslücke in dem Dienstprogramm Timthumb für Wordpress kann genutzt werden, um Wordpress-Blogs zu manipulieren. Der Entdecker der Sicherheitslücke stellt ein Patch zur Verfügung, der Entwickler will den Fehler korrigieren.

Quelle: http://www.golem.de/1108/85446.html

Hintertür in populären WordPress-Plug-ins

Eine in drei populären Plug-ins entdeckte Hintertür hat die WordPress-Entwickler dazu bewogen, alle Passwörter für WordPress.org zurückzusetzen und den Zugriff auf die Erweiterungsrepositories zu sperren. Wie die Hintertüren in AddThis, WPtouch und W3 Total Cache gelangt sind, ist noch unklar.

Bislang nimmt man an, dass nicht die Entwickler selbst sie eingebaut haben, sondern Angreifer an deren Zugangsdaten für die Konten gelangt sind und im Repository den Code manipulierten. Wie die Unbekannten an die Daten gekommen sein könnten, schreiben die Betreiber von WordPress.org nicht. Man untersuche den Fall derzeit noch, sicherheitshalber habe man jedoch ein Passwort-Reset durchgeführt – dies betrifft auch die Seiten bbPress.org und BuddyPress.org.

Die Backdoors in den Plug-ins sollen sehr gut getarnt gewesen sein. Die WordPress-Entwickler haben die alten Versionen ohne Backdoor in die Repositories wieder zurückgespielt. Wer die genannten Plug-ins nutzt und in den letzten Tagen aktualisiert hat, sollte die Update-Seite erneut besuchen und die dort angebotene Version erneut installieren. Damit sollen die potenziellen Backdoors wieder aus dem System verschwinden – sofern ein Angreifer nicht bereits ins System eingedrungen ist und weitere Zugänge etabliert hat. (dab)

Quelle: http://www.heise.de/newsticker/meldung/Hintertuer-in-populaeren-WordPress-Plug-ins-1265218.html

E-Mail-Injection

Immer mehr Webseiten mit Mailformularen werden von Spammern zum Versand von unerwünschten Mails missbraucht. Wie das funktioniert und was man dagegen tun kann...

mehr

Automatischer SPAM-Filter
Automatischer SPAM-Filter

In der JPBerlin ist ein automatischer SPAM-Filter für jeden Mailaccount aktiv. Mit Beantragung eines Kontos erklärt sich der Nutzer mit diesem SPAM-Schutz ausdrücklich einverstanden.

mehr

© 2011 Heinlein Professional Linux Support GmbH / JPBerlin / Peer Heinlein. Alle Rechte vorbehalten. Impressum.