header injection !!!
jo
- php
hallo zusammen,
ich hatte in der letzten zeit häufiger das problem das meine kontaktformulare mittels header injection missbraucht wurden,
und habe schon alle maßnahmen getroffen um das zu unterbinden.
kann man eigentlich rechtlich dagegen angehen wenn man die ip($_SERVER['REMOTE_ADDR']) adresse kennt von wo das header injection gesendet wurde und ist ein header injection eigentlich legal ?
gruß
hi,
ich hatte in der letzten zeit häufiger das problem das meine kontaktformulare mittels header injection missbraucht wurden,
und habe schon alle maßnahmen getroffen um das zu unterbinden.
Dann tritt das Phänomen jetzt also nicht mehr auf - ?
kann man eigentlich rechtlich dagegen angehen wenn man die ip($_SERVER['REMOTE_ADDR']) adresse kennt von wo das header injection gesendet wurde
Versuchen kannst du es, dürfte aber idR. weitgehend sinnfrei sein.
Oftmals dürfte es sich um IPs von ausländischen Zugängen handeln, und da kommst du wegen einem so unwichtigen Vergehen wie Spamversand nicht weit.
Und darüber hinaus dürfte der größte Teil der Requests über gekaperte Rechner gehen (Bot-Netze) - wo man auch höchstens den Nutzer des befallenen Rechners ermitteln könnte.
und ist ein header injection eigentlich legal ?
Ob man das rechtlich schon als Eindringen in ein fremdes Computersystem werten kann, halte ich für fraglich.
Du hast ein Formular bereitgestellt, es wurde benutzt. Dass es sich bei entsprechend günstig gewählten Eingabedaten anders verhält als von dir beabsichtigt, ist erst mal dein Problem.
gruß,
wahsaga
hallo,
Dann tritt das Phänomen jetzt also nicht mehr auf - ?
das problem wurde beseitigt
Du hast ein Formular bereitgestellt, es wurde benutzt. Dass es sich bei entsprechend günstig gewählten Eingabedaten anders verhält als von dir beabsichtigt, ist erst mal dein Problem.
so hatte ich mir das auch gedacht.
danke
jo
Lieber wahsaga,
ich kenne den Mechanismus, der sich hinter Header-Injection versteckt, nicht. Da es aber mit Formularen zu tun hat, interessiert es mich, da ich vielleicht an meinen Formularen dann auch etwas ändern müsste.
die ip($_SERVER['REMOTE_ADDR']) adresse
hat wohl damit zu tun?
Du hast ein Formular bereitgestellt, es wurde benutzt. Dass es sich bei entsprechend günstig gewählten Eingabedaten anders verhält als von dir beabsichtigt, ist erst mal dein Problem.
Könntest Du mir eine Art Beispiel-Szenario erklären, dass mir der Mechanismus theoretisch klar wird? Ich habe jetzt keine Ahnung inwieweit das Anstiftung zu grobem Unfug wäre, aber es gäbe im Notfall ja auch meine Mailadresse... :-)
Liebe Grüße aus Ellwangen,
Felix Riesterer.
hi,
ich kenne den Mechanismus, der sich hinter Header-Injection versteckt, nicht.
Die Wikipedia ist diesbezüglich doch schon recht ausführlich:
http://de.wikipedia.org/wiki/E-Mail-Injektion
Kurz gesagt besteht das Grundproblem in Folgendem:
Die Header einer Mail werden durch \r\n voneinander abgegrenzt.
Jetzt möchtest du beim Versenden einer Mail mich als Benutzer den Betreff - auch der gehört ja noch zu den Headern - über ein Formular mitgeben lassen. Du erwartest, dass ich "Anfrage bezüglich xyz" ins Formularfeld eintippe, das würde dann eine Headerzeile der Form
Subject: Anfrage bezüglich xyz\r\n
in der Mail ergeben.
Nu bin ich aber böse, und übermittle stattdessen "Anfrage bezüglich xyz\r\nbcc: another.user@example.org"
Watt kommt da raus? Genau,
Subject: Anfrage bezüglich xyz\r\n
bcc: another.user@example.org
Und schon geht die Mail nicht mehr nur an die Adresse, die du in deinem Script festgelegt hast, sondern auch an another.user@example.org.
gruß,
wahsaga
Lieber wahsaga,
vielen Dank für Deine Erläuterungen!
ich hatte unter "Header" zuerst die Funktion header() in PHP verstanden und konnte mir beim besten Willen nicht erklären, wie man als User "von außen" diese missbrauchen kann. Aber wenn Mail-Header damit gemeint sind, dann bekommt das Ganze einen Sinn.
Danke, und liebe Grüße aus Ellwangen,
Felix Riesterer.
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
(<LFCR> steht hier für Newline)
*grmpf* muss natürlich CRLF heißen, und im Übrigen war wahsaga schneller. Mannomann, ich werde alt.
Siechfred
Lieber Siechfred,
und im Übrigen war wahsaga schneller. Mannomann, ich werde alt.
trotzdem Danke!
Liebe Grüße aus Ellwangen,
Felix Riesterer.
hi,
Dieses Vorgehen funktioniert bei allen Formulareingaben, die in irgendeiner Form in den Header der E-Mail eingehen.
Und sogar der Mailinhalt kann so ggf. ergänzt werden. Denn der Mail Body wird von den Headern durch \r\n\r\n, doppeltes Newline, abgegrenzt.
Gebe ich also für den Betreff
Hello\r\n\r\nBUY V1a6ra 0nl1en at http://... !!!1elf
mit, dann landet diese Kaufaufforderung ggf. noch vor deinem eigentlichen Mailtext in deiner Mail.
gruß,
wahsaga