Siechfred: header injection? wie geht das?

Beitrag lesen

Hell-O!

Könntest Du mir eine Art Beispiel-Szenario erklären, dass mir der Mechanismus theoretisch klar wird?

Indem du Formulareingaben ungeprüft in eine E-Mail einbaust. Zu den Headerzeilen gehört u.a. auch der Betreff, den du in deinem Formular eingibst, z.B. "Anfrage" o.ä.

Nun gibst du in die Formularzeile "Betreff" eben nicht einfach nur "Anfrage" ein, sondern

Anfrage<LFCR>
Bcc: spam@example.org<LFCR>
Bcc: nochmal_spam@example.de

(<LFCR> steht hier für Newline)

Übernimmst du diese Eingabe ungeprüft in die E-Mail, kommt dann so ein E-Mail-Header raus:

To: deine_mail@example.org
Subject: Anfrage
Bcc: spam@example.org<LFCR>
Bcc: nochmal_spam@example.de

usw.

Und schon hast du eine prächtige Spamschleuder. Dieses Vorgehen funktioniert bei allen Formulareingaben, die in irgendeiner Form in den Header der E-Mail eingehen. Ein möglicher Schutz ist es, in solchen Eingabefeldern einfach kein Newline zuzulassen. Im Übrigen gilt auch unter PHP die goldene Regel, dass *keine* Angabe von außen ungeprüft weiterverarbeitet werden darf, in Perl gibt's dafür den Taint-Modus.

Siechfred

--
Ich bin strenggenommen auch nur interessierter Laie. (molily)
Siechfreds Tagebuch || Falle Aufteilungsbescheid || RT 221 Erfurt-Altstadt i.V.