Header-Injection
Anzeige Hier werben
Verwandte Angriffe:
Kurze Beschreibung:
Header-Injection ist eine Klasse von Sicherheitslücken in Webanwendungen, welche auftreten, wenn die Header eines Protokolls dynamisch unter Hinzunahme von unzureichend geprüften Benutzereingaben generiert werden.
Folgen:
Header-Injection in HTTP kann z. B. zu HTTP-Response-Splitting und Cross-Site Scripting führen. Bei der dynamischen Erstellung von E-Mails über eine Webanwendung kann ein Header-Injection-Angriff genutzt werden, um andere Empfänger in eine E-Mail einzutragen um so beispielsweise Spam zu versenden (E-Mail-Injektion).
Funktionsweise:
Beispiel: E-Mail Injection
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 (E-Mail)-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.
1 2 3 4 5 6 7 8 9 10 11 | <?php
$_REQUEST = array(
"name_absender" => "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: spamopfer@example.com
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 example.com 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.
Gegenmaßnahmen:
Zum Verhindern einer Header-Injection müssen Benutzereingaben sorgfältig geprüft werden, vor allem auf die je nach Kontext geltenden Metazeichen. So werden in der Regel die einzelnen Header-Felder durch die Zeilenumbruchsequenz CRLF getrennt. Deshalb gilt es diese in Benutzereingaben herauszufiltern beziehungsweise zu maskieren. Beim HTTP und SMTP wird zum Maskieren z. B. die URL-Kodierung eingesetzt, beim SMTP zusätzlich noch die Quoted-printable-Kodierung.
In PHP wird seit den Versionen 4.4.2 bzw. 5.1.2 eine Injektion über die header-Funktion automatisch verhindert. Bei der mail-Funktion hingegen muss dies jedoch noch manuell gesichert werden.
Fazit:
Header-Injection kann zu Cross-Site-Scripting oder HTTP-Response-Splitting führen, damit wäre es möglich Schadcode zu übermitteln und die Webseite bzw. den Webserver zu kontrollieren. Durch geeignete Abwehrmaßnahmen, die sorgfältige Prüfung der Benutzereingaben, wird eine Header-Injection gänzlich verhindert und wir alle können uns über weniger Spam Nachrichten freuen.
zurück zur Übersicht Web-Sicherheit
Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher haben 2 Personen an der Seite "Header-Injection" mitgewirkt.
Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "Header-Injection" hier bearbeiten.
-
Computer Scientologe im 7. Semester an der HS Augsburg. Schreibt gerade an seiner Bachelorarbeit im Bereich neue Webtechnologien und arbeitet als Werksstudent bei Team23. Nebenbei betreibt er noch seinen Blog www.gironimo.org
-
David Danier arbeitet seit mehr als neun Jahren im Bereich Web Programmierung und ist unter anderem Geschäftsführer der Webagentur Team23 sowie Webmasterpro.de.

