PHP Unsichere Kontaktformulare

KaizenX

Cadet 4th Year
Registriert
März 2010
Beiträge
66
Hallo,

ich schreibe gerade eine Hausarbeit über das Thema Spam und bin an dem Punkt "Spam über Kontaktformulare" angekommen.
Auf dieser Website bin ich dabei auf folgendes Zitat gestoßen:

Ein Spammer würde als Absender natürlich nicht sich selbst angeben, sondern vielleicht Absender und Empfänger gleich setzen, so dass der Zorn der Spam-Opfer nicht ihn treffen würde.

Ist es tatsächlich möglich, dass man bestehende Header bearbeiten und so den Absender ändern kann?

Ich habe mich auf anderen Websites zum Thema Email Injection schlau gemacht und da ist davon eigentlich nicht die Rede. (z.B. http://securephpwiki.com/index.php/Email_Injection)

Grüße
 
Um beides? Sorry, bin wirklich kein Profi was das Thema angeht. Aber so wie ich das verstehe, sind Kontaktformulare, die mit PHP realisiert wurden, teilweise anfällig für E-Mail-Spam. Anscheinend kann/konnte man über das Einfügen von Zeilenumbrüchen die Header einer E-Mail beeinflussen, weil die PHP-Skripte oft die Eingaben nicht ordentlich überprüfen. Das Einfügen von weiterer Header wie z.B. CC scheint kein Problem zu sein. Jetzt frag ich mich nur, ob das bearbeiten von bestehenden Header (From:) auch darüber möglich ist.

Grüße
 
Du kannst den Header einer Email beliebig setzen, so auch den Empfänger als Absenderemailadresse.
 
Ja natürlich, wie beim echten Brief mit einem Fantasie-Absender.
Man muss nur entsprechende E-Mail-Software konfigurieren.
Tatsächlich bekommt man aber eig. immer die IP heraus. Nur die Herausgabe kann sich schwierig erweisen (z.B. im russischen oder chinesichen Ausland)
 
KaizenX schrieb:
Aber so wie ich das verstehe, sind Kontaktformulare, die mit PHP realisiert wurden, teilweise anfällig für E-Mail-Spam.

Das hat nichts mit PHP per se zu tun. Liegt alleine daran, wie das Formular implementiert ist.

Bei der zitierten Aussage geht es doch nur darum, dass ein Spammer nicht seine eigene E-Mail Adresse als Absender angibt.
 
Hallo,

Es ist immer ganz gut so etwas in seine Einzelteile zu zerlegen:
* E-Mail als Protokoll

Das E-Mail-Protokoll ist alt und ohne jegliche Identitätsprüfung. Man kann sich einfach als irgendjemand anderes ausgeben. Man muss nur einen E-Mail-Server finden, der einen eine solche präparierte E-Mail in der Form auch abnimmt und an seine Empfänger weiterleitet.
Antispam-Maßnahmen sorgen sehr oft dafür, dass der "einliefernde Rechner" über mehrere Vorgaben zum Absender passen muss. Da kannst Du mal nach nach den Stichworten "Sender Policy Framework", "Reverse DNS-Lookup" und "EHLO" recherchieren.

* Webmailer, die in PHP oder sonstwas geschrieben sind.
Um die oben genannten Probleme des "nicht vertrauenswürdigen Absenders" aus Sicht des Spammers zu lösen, wird ein Spammer immer versuchen ein valides und vertrauenswürdiges E-Mail-System für seine Zwecke zu benutzen, anstatt das E-Mail-Protokoll selber "anzugreifen".

Ein solches Ziel sind Webmailer, die schlecht programmiert sind.
(Und das sind leider sehr, sehr sehr viele - liegt nicht an PHP, aber PHP macht Webentwicklung sehr zugänglich, weswegen sehr viele Leute dort Code produzieren, die lieber keine produzieren sollten...)

Solche Webmailer validieren Benutzereingaben nicht richtig, wodurch Steuerzeichen direkt in die Verarbeitungsroutine des E-Mail-Servers für diesen Webmailer gelangen und dadurch kann man bei einigen Webmailern, wie in Deinem ersten Link beschrieben, zusätzliche Empfänger dieser Nachricht einfügen, die da eigentlich gar nicht hingehören. Der Fehler ist aber nicht das Prinzip "Webmailer" an sich, sondern das der Programmierer des Webmailers die Steuerzeichen, für das E-Mail-Protokoll sind das leider Zeilenumbrüche, nicht richtig in den Benutzereingaben findet und maskiert oder irgendwie anders aus den vom Benutzer erstellten Informationen entfernt...

Wenn man dann noch freien Text in die Nachricht bringen kann, was bei Kontaktformularen ja meistens der Fall ist, dann hat man eine schöne "Spamschleuder" im Netz stehen. Perfide dabei ist, dass der Absender ja der eigentlich legitime Webmailer bzw. der dazugehörige E-Mail-Dienst ist und solche Nachrichten von vielen Antispamfiltern deswegen (zunächst) nicht als Spam eingestuft werden.

Die Suchworte für die Recherche dafür lauten: "Sanitizing User Input & Input Filter" Exkurs: SQL-Injection-Angriffe, File-Traversing-Hacks & Cross-Site-Scripting (und weitere Angriffsvektoren) basieren auch alle auf entsprechend manipulierten Benutzereingaben, die nicht korrekt im Kontext des Zielsystems "sanitized & escaped" wurden. Deswegen gilt als oberstes Gebot (Programmierparadigma) bei der Webentwicklung: Don't trust anything - vertraue nichts und niemanden - und nicht, wie Google es behauptete "mobile first" oder "ai first" ... "secure your shit"-first wäre richtiger ;-)

So, da sind jetzt so viele Stichwörter in meinem Text, damit kann man schön auf Recherche gehen und eine ordentliche Arbeit ausarbeiten ;)

Viel Erfolg
 
Zurück
Oben