PHP Tutorials, PHP Forum, PHP Community and more ... MyWebsolution.de!

Sidebar

Home News Tutorials Workshops Tipps Artikel Gästebuch Sitemap

Suche

Members

Forum Login Registrierung

Statistik

Statistikbereich
Jetzt8
Heute129
Gestern334
Gesamt230682

Artikel

Autor Flitze
Klicks 2527
Bewertungen 2
Rating 6
Stand 24.03.2008

Keywords
Mail Injection, E-Mails manipulieren, Kontaktformulare als Spammöglichkeit missbrauchen, \n\r, BCC: in Mails, mail()

Social Bookmarking:

Mail Injection

Seite : 1 Bewerten

Was ist Mail Injection?


Unter Mail Injection versteht man die Modifikation der Header-Angaben in einer E-Mail, die über ein Formular und die Funktion mail() verschickt wird. Diese Funktion versendet eine E-Mail in der z.B. folgende Header-Angaben stehen:

To: fiktiver.Name@fiktive.domain.de
Subject: Kontaktformular von fiktive.domain
From: Test@domain.de

Ich gehe mal von einem einfachen Kontaktformular aus, bei dem der User nur seine eigene E-Mail-Adresse eintragen muss, um eine Antwort erhalten zu können. Dabei sind To: und Subject: bereits vorgegeben, die From:-Angabe hängt jedoch von der Eingabe des Benutzers ab. Im obigen Beispiel wäre das Test@domain.de. Stattdessen könnte ein Angreifer aber auch folgende Adresse angeben:

Test@domain.de\nBcc: info@firma1.de, info@privat2.de, info@oeffentlich3.de

Dadurch werden die Header-Angaben manipuliert, so dass folgender Header entsteht:

To: fiktiver.Name@fiktive.domain.de
Subject: Kontaktformular von fiktive.domain
From: Test@domain.de
Bcc: info@firma1.de, info@privat2.de, info@oeffentlich3.de

Dadurch wird eine Kopie der Email an die nach Bcc: angegebenen Adressen versandt. Das kann zum Beispiel für Spam- und Werbemails ausgenutzt werden, die über meinen Server gesendet werden, so dass ich auch dafür haftbar gemacht werden kann.

Email-Adresse filtern


Bei der Registrierung neuer User habe ich damals einen RegExp zur Überprüfung der Email-Adresse geschrieben. Das Suchmuster lautet dabei
'§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§'
Dadurch werden nur Email-Adressen akzeptiert, die folgendermaßen aufgebaut sind:

Beliebig viele alphanumerische Zeichen, Punkte oder Gedankenstriche, gefolgt von einem @ gefolgt von beliebig vielen alphanumerischen Zeichen, Punkten oder Gedankenstrichen, gefolgt von einem Punkt gefolgt 2-4 alphanumerischen Zeichen. Eine gültige Adresse wäre somit z.B. user@domain.de.

Bezogen auf den obigen Mail-Injection-Versuch, würde es nun einen Fehler geben, da die oben genannte Adresse \n enthält, mehrere @’s besitzt und hinter Bcc ein Doppelpunkt steht.

So werden zwei Fliegen mit einer Klappe geschlagen, zum einen wird Mail Injection verhindert und zum anderen wird geprüft, ob die eingegeben Email Adresse auch gültig ist, damit z.B. Tippfehler berichtigt werden können.   Bewerten

»» Zurück zum Menu

Ranking

Tutorials (9)

BB Code8.7
Besucherstatistik8.6
Dateien in PHP üb...8.4

Workshops (3)

Sessions in PHP8.8
Loginsystem8.5
Bildergalerie7.1

Tipps (9)

Diagrammklasse9.5
Verbindung zur My...9
in_array für Java...8.7

Artikel (12)

WasserbettenGuerilla10
Linkbuilding bzw....8.4
Geld im Internet ...7.8

Partner & Links


Valid HTML 4.01 Transitional
Valid CSS
nach oben

 
 
© MyWebsolution.de
2006-2008