Crlf injection
CRLF Injection ist eine Technik mit der man verschiedene Protokoll-Eigenschaften (z.B. HTTP oder SMTP) ausnutzt um Pakete umzuleiten oder ähnliches. CRLF steht für "Carriage Return" (CR, ASCII 13="\r") und "Line Feed" (LF, ASCII 10="\n"). Diese Zeichen zeigen keinen sichtbaren Inhalt auf dem Bildschirm an und sind dazu gedacht, Text zu formatieren. Die Kombination des CR und LN-Zeichens ist vergleichbar mit dem Drücken der Enter-Taste. Jenachdem in welchem Zusammenhang, kann dadurch eine neue Zeile angefangen oder ein Befehl abgesendet werden. Mit diesen Zeichen kann man die Header von verschiedenen Protokollen manipulieren. Im Zusammenhang mit ungeprüfter Benutzer-Eingabe eröffnen sich viele Möglichkeiten.
SMTP-Protokoll: Kontaktformulare
Bei vielen Kontakt-Formularen auf Webseiten wird höchstens auf HTML oder Javascript in der Benutzer-Eingabe geprüft. Doch genau das kann man sich zu nutze machen um das Formular zur Spam-Verbreitung nutzen. Doch zuerst sollte man mal wissen wie der Header eines SMTP-Pakets aussieht:
from: max.mustermann@beispiel.de to: luise.musterfrau@beispiel.de subject: Testmail Hallo, das ist der Inhalt der Text-Mail .
Der Header ist also in verschiedene Abschnitte unterteilt. Die einzelnen Teile sind selbsterklärend. Aber wir sehen, der Header ist durch Zeilenumbrüche und in Klartext formatiert. Was wäre, wenn wir z.B. folgendes in den Betreff eingeben würden:
TestMail\nbcc:peter.mustermann@beispiel.de
Wie würde dann der Header aussehen, wenn das "\n" zum Zeilenumbruch umgesetz wird?
from: max.mustermann@beispiel.de to: luise.musterfrau@beispiel.de subject: Testmail bcc: peter.mustermann@beispiel.de Hallo, das ist der Inhalt der Text-Mail .
Diese E-Mail würde nicht nur an Luise M. sondern auch an Peter M. verschickt. Jedoch muss man dazu sagen, dass nicht alle SMTP-Server diese Methode der Injection unterstützen, da sie nicht ganz den Spezifikationen des Protokolls entspricht.
|