E-Mail-Injection
E-Mail-Injektion bezeichnet das Ausnutzen einer Sicherheitslücke in einer Webanwendung, die es einem Angreifer erlaubt, über ein ungeschütztes Kontaktformular ohne Wissen und Einverständnis des Betreibers E-Mails zu verschicken. Das Hauptinteresse des Angreifers ist der Versand von Spam. Der Begriff wurde von der Sicherheitslücke SQL-Injection abgeleitet.
Funktionsweise
Die Sicherheitslücke besteht darin, dass die in ein Kontaktformular eingegebenen Daten ohne weitere Prüfung an den Mailserver weitergereicht werden. Dem Angreifer kommt dabei zugute, dass die Header-Informationen zeilenweise am Anfang der E-Mail stehen und einige Programmiersprachen für Webanwendungen selbst keine Überprüfung der Daten beim Versand einer E-Mail vornehmen. Der Vorgang der E-Mail-Injektion besteht darin, einzeilige Eingaben, wie zum Beispiel den Betreff der Anfrage, mit mehrzeiligen Informationen zu füllen. Dabei können beispielsweise weitere Empfänger gesetzt werden, unter Umständen auch als „CC“ oder „BCC“, selbst wenn der Programmierer der Webanwendung eine Empfängeradresse fest vorgegeben hat.
Verbreitung
Bis 2004 war die Lücke zwar bekannt, wurde aber nur vereinzelt ausgenutzt. Seit 2005 häufen sich die Meldungen, dass Search-Bots – ähnlich denen einer Suchmaschine – in großem Umfang Formulare auf Webseiten mit der Brute-Force-Methode auf eine Verwundbarkeit hinsichtlich dieser Sicherheitslücke überprüfen. Es ist zu erwarten, dass die hierbei gesammelten Informationen in naher Zukunft zum Versand von Spam in größerem Umfang eingesetzt werden.
Beispiel
Der nachstehende Code zeigt die Daten eines solchen HTTP-Requests auf ein Kontaktformular einer in PHP geschriebenen Webanwendung.
$_REQUEST = Array {
["name_absender"]=> string(215) "of
Content-Type: text/plain; charset=\"us-ascii\"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: nton an incoln. e d be bucked off befure
bcc: [email protected]
ec36ff5aa45502446284c4f3ce2b3896
.
"
}
Dabei steht $_REQUEST für das Array, das alle Variablen enthält, die dem HTTP-Request mitgegeben wurden. Das ist in diesem Fall nur die Variable „name_absender“. Diese ist ein String von 215 Zeichen, der sich über neun Zeilen erstreckt. Baut die Webanwendung den Namen des Absenders in den Header einer E-Mail ein, wird die E-Mail ungewollt auch an die angegebene Adresse beim Provider AOL gesendet. Hier handelt es sich noch nicht um das Aussenden von Spam selbst, sondern um den Test, ob das betreffende Kontaktformular anfällig für die Sicherheitslücke ist. Die Zeile mit den 32 Zeichen wird vermutlich ein Hash-Wert sein, mit dem der Angreifer die URL des ungeschützten Kontaktformulars codiert hat, um sie später zu identifizieren.
Abwehrmaßnahmen
In Internet-Foren wird über geeignete Abwehrmaßnahmen diskutiert. Vermeintlich schützende Maßnahmen, wie das gezielte Aussperren eines bestimmten Search-Bots anhand der von ihm verwendeten E-Mail-Adresse, das Abprüfen des Referrers bei der Verarbeitung der Eingaben oder des ausschließlichen Akzeptierens von Eingaben über HTTP-POST aus dem Kontaktformular, können leicht umgangen werden.
Eine wirksame Maßnahme ist das Unterbinden von Zeilenumbrüchen in Variablen, die später in den Header der E-Mail eingefügt werden sollen. Ob dabei ein mehrzeiliger String auf die erste Zeile gekürzt oder bei der Feststellung von Zeilenumbrüchen die Verarbeitung des Programmes unterbrochen wird, ist dem Programmierer freigestellt.
Siehe auch
Weblinks
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.