Spamattacke über Kontaktformular, Versand von illegalen Massenmails |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Spamattacke über Kontaktformular, Versand von illegalen Massenmails |
Wed. 21. February 2007, 08:11
Beitrag
#1
|
|
Newbie Gruppe: Members Beiträge: 5 Mitglied seit: 30.06.2006 Mitglieds-Nr.: 13 |
Guten Tag
Auf einer Kundenwebseite wurde das Kontaktformular (Version 1.7.3) für den Versand von illegalen Massenmails missbraucht. Der Provider hat den Versand via Formular gesperrt und mir folgende Nachricht zukommen lassen: ZITAT Grund für die Sicherheitslücke ist, da Ihr Kontaktformular keine "Injections" abfängt. So ist es möglich Headerinformationen über die Formularfelder Ihres Kontaktformulares mitzusenden. Schreibt man beispielsweise "\nBcc:adresse123@test.tst", so wird die Nachricht zusätzlich an eine weitere Adresse versendet. Auf diese Weise lassen sich durch 1 absenden des Kontaktformulares tausende Spammails versenden. Die Angreifer verwendeten dabei meist Bcc-Einträge in den Formularfeldern. Als Ihr Webspaceprovider sind wir dazu verpflichtet Ihren Webaccount so lange zu sperren bis das Problem behoben wurde. Da wir aber nicht Ihre gesamte Website lahm legen möchten haben wir nur das Sendescript des Kontaktformulares gesperrt. Was muss ich tun, um diese Sicherheitslücke zu beheben? Herzlichen Dank für Eure Antwort. |
|
|
Wed. 21. February 2007, 11:51
Beitrag
#2
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
ZITAT Schreibt man beispielsweise "\nBcc:adresse123@test.tst", so wird die Nachricht zusätzlich an eine weitere Adresse versendet in welchem feld deines kontaktformulars soll das funktionieren?ZITAT Grund für die Sicherheitslücke ist, da Ihr Kontaktformular keine "Injections" abfängt. So ist es möglich Headerinformationen über die Formularfelder Ihres Kontaktformulares mitzusenden. soviel ich weiss verwendet björn im kontaktformular eine klasse die sehr wohl die headerdaten prüft. ZITAT Da wir aber nicht Ihre gesamte Website lahm legen möchten haben wir nur das Sendescript des Kontaktformulares gesperrt. wäre interessant wie sie das gemacht haben. denn der code der die mails versendet steht ja in der datenbank und wird per eval ausgeführt. hätten sie da was gesperrt, dann würde das ganze cms wohl nicht mehr funktionieren. unabhängig davon aktualisiere mal auf version 2.0 des kontaktformulars und aktivere die captcha funktion und das logging. -------------------- SEFRENGO | a free choice ... again!
|
|
|
Wed. 21. February 2007, 12:00
Beitrag
#3
|
|
TRAIL AND ERROR SPECIALIST Gruppe: AdvancedMembers Beiträge: 1.708 Mitglied seit: 27.06.2006 Wohnort: Hansestadt Rostock, Deutschland Mitglieds-Nr.: 9 |
hab Björn bereits schon auf misstände im kontaktformular hingewiesen ... auch 2.0 ist imho wenig sicher. zumindest bei 1.7.4 konnte man e-mails auch über die url-allein (per GET) versenden. und injection-schutz gibts bei 2.0 glaube auch nicht ... kann mich da aber irren.
-------------------- cheers, Alex
|
|
|
Wed. 21. February 2007, 12:22
Beitrag
#4
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
ZITAT auch 2.0 ist imho wenig sicher wieso?ZITAT und injection-schutz gibts bei 2.0 glaube auch nicht ... kann mich da aber irren. da die mails ja jetzt über die pear mail klasse versendet werden durchlaufen diese die funktion _sanitizeHeaders(&$headers) welche genau das macht. -------------------- SEFRENGO | a free choice ... again!
|
|
|
Wed. 21. February 2007, 14:39
Beitrag
#5
|
|
TRAIL AND ERROR SPECIALIST Gruppe: AdvancedMembers Beiträge: 1.708 Mitglied seit: 27.06.2006 Wohnort: Hansestadt Rostock, Deutschland Mitglieds-Nr.: 9 |
wieso? weil du bspw. kein formular brauchst zum e-mail-versand ... es wird nicht zw. get & post unterschieden - alles läuft über $_REQUEST - insofern kannst du per url&formularfeld=sowieso&formularabsendeflag=true mails verschicken ... darauf hat mich ein provider hingewiesen und wie ich das im 2.0-code so sehe hat sich diesbezüglich nichts geändert, oder? bzgl. 2.0 & pear - ok wusst ich nicht ... nutzte hier noch meine präparierte 1.7.4+ -------------------- cheers, Alex
|
|
|
Wed. 21. February 2007, 14:57
Beitrag
#6
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
weil du bspw. kein formular brauchst zum e-mail-versand ... es wird nicht zw. get & post unterschieden - alles läuft über $_REQUEST - insofern kannst du per url&formularfeld=sowieso&formularabsendeflag=true mails verschicken ... darauf hat mich ein provider hingewiesen und wie ich das im 2.0-code so sehe hat sich diesbezüglich nichts geändert, oder? mit tools wie curl kannst du auch fast jedes form per post automatisiert absenden. was soll also die methode post an der sicherheit verbessern? ok die url für einen get request zu erzeugen ist vielleicht einfacher aber deswegen nicht sicher oder unsicherer als post. da helfen dann nur dinge wie cpatchas, prüfung des referers oder die methode die der formbuilder verwendet. -------------------- SEFRENGO | a free choice ... again!
|
|
|
Wed. 21. February 2007, 15:36
Beitrag
#7
|
|
TRAIL AND ERROR SPECIALIST Gruppe: AdvancedMembers Beiträge: 1.708 Mitglied seit: 27.06.2006 Wohnort: Hansestadt Rostock, Deutschland Mitglieds-Nr.: 9 |
ok die url für einen get request zu erzeugen ist vielleicht einfacher aber deswegen nicht sicher oder unsicherer als post. hab nicht gesagt das get oder post sicherer/unsicherer ist. es ist die methode wie das formular funktioniert ... je leichter die manipulationsmöglichkeiten, desto unsicherer ist das formular. und formularfeldinhalte inkl. versand-flag über die url übergeben zu können ist eine art der manipulation. dazu braucht man dann eben auch keine spezielle software, oder viel wissen. das muss nicht sein - ist ganz einfach ein schwachpunkt. -------------------- cheers, Alex
|
|
|
Wed. 21. February 2007, 15:41
Beitrag
#8
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
das muss nicht sein - ist ganz einfach ein schwachpunkt. nein das ist nicht der schwachpunkt. der knackpunkt ist wie die übergebenen daten und der aufruf des form geprüft werden/wird und nicht die methode (post/get) wie die daten übergeben werden. jemand der spam versenden will wird sich nicht davon aufhalten lassen ob das get oder post ist. wenn ich mir meine logs von apache modsecurity ansehe dann laufen fast 90% aller spamversuche per post ab. -------------------- SEFRENGO | a free choice ... again!
|
|
|
Wed. 21. February 2007, 16:30
Beitrag
#9
|
|
TRAIL AND ERROR SPECIALIST Gruppe: AdvancedMembers Beiträge: 1.708 Mitglied seit: 27.06.2006 Wohnort: Hansestadt Rostock, Deutschland Mitglieds-Nr.: 9 |
bei mir & meinem kunden waren es mehrere tage lang 100% über get ... mir hat das gereicht und es wäre eventuell nicht dazu gekommen, wenn es so nicht möglich gewesen wäre. ist doch komplett latte wieviel prozent von dem oder dem ... und wenn es 0.1 % ist, kann dieser kleine prozentsatz mit leichtigkeit vermieden werden - wozu also die diskussion alexander? kannst es ja für unbedeutend halten ... kein problem.
-------------------- cheers, Alex
|
|
|
Wed. 21. February 2007, 16:36
Beitrag
#10
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
wozu also die diskussion alexander? kannst es ja für unbedeutend halten ... kein problem. weil einfach nicht die methode get/post das problem ist, sondern man da woanders ansetzen muss um es sicher zu machen als es jetzt schon (in version 2.0) ist. wenn der nächtse spamversuch auf deine kunden dann per post kommt was machst du dann? wie stellst du eigentlich fest, das deine spamversuche nur per get gekommen sind? -------------------- SEFRENGO | a free choice ... again!
|
|
|
Wed. 21. February 2007, 16:58
Beitrag
#11
|
|
TRAIL AND ERROR SPECIALIST Gruppe: AdvancedMembers Beiträge: 1.708 Mitglied seit: 27.06.2006 Wohnort: Hansestadt Rostock, Deutschland Mitglieds-Nr.: 9 |
weil einfach nicht die methode get/post das problem ist, sondern man da woanders ansetzen muss um es sicher zu machen als es jetzt schon (in version 2.0) ist. wenn der nächtse spamversuch auf deine kunden dann per post kommt was machst du dann? dann fange ich wohl möglich wieder an mit dir zu diskutieren ZITAT wie stellst du eigentlich fest, das deine spamversuche nur per get gekommen sind? ich hab diese geschichte letztlich über die server-log-files bemerkt. NATÜRLICH könnnen nebenher auch noch andere spamversuche vorgekommen sein ... *ts* -------------------- cheers, Alex
|
|
|
Wed. 21. February 2007, 17:00
Beitrag
#12
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
server-logs welche logs genaue? welche tools verwendest du um die postdaten auszuwerten? -------------------- SEFRENGO | a free choice ... again!
|
|
|
Wed. 21. February 2007, 17:22
Beitrag
#13
|
|
Newbie Gruppe: Members Beiträge: 4 Mitglied seit: 03.07.2006 Mitglieds-Nr.: 95 |
Hallo zusammen,
sollte nicht die PHP-Konfiguration oder der Apache Strings aus Formularen mit einem Backslash in der Form wie \nbcc:email@email.com,... mit einem weiteren Backslash escapen? Nur so eine Idee, um serverseitig ein weiteres Sicherheitsfeature einzuschalten. Ist mir bei verschiedenen Providern schon vorgekommen, dass hier einige escapen andere nicht. Keine Ahnung ob dies wirklich Spamattacken verhindern kann. Just my 2cents. Viele Grüße, Severin |
|
|
Wed. 21. February 2007, 17:28
Beitrag
#14
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Das ganze Ungemach kommt aus dem PEAR Mailpackage. Die Version, die in der beta2 drinne ist, unterstützt das Prüfen des Headers noch nicht. Es kann einfach gelöst werden, indem das aktuelle PEAR Mailpackage verwendet wird. Ich habe es als Anhang dran gepackt. Bitte in den Ordner "backend\external\pear.php.net\" kopieren. Vorhandene Dateien und Ordner überschreiben.
EDIT: DOWNLOAD ENTFERNT, DA FEHLER NICHT ZUTREFFEND. SIEHE AUCH http://forum.sefrengo.org/index.php?s=&...post&p=6896 WEITER UNTEN -------------------- Es wird, es wird...
|
|
|
Wed. 21. February 2007, 17:42
Beitrag
#15
|
|
TRAIL AND ERROR SPECIALIST Gruppe: AdvancedMembers Beiträge: 1.708 Mitglied seit: 27.06.2006 Wohnort: Hansestadt Rostock, Deutschland Mitglieds-Nr.: 9 |
welche logs genaue? welche tools verwendest du um die postdaten auszuwerten? ich habe lediglich auf den hinweis vom providers des kunden reagiert und war über äußerst lange urls im access-log doch sehr überrascht ... ich sage mit keinem wort, dass es letztlich nicht am wichtigsten ist die verarbeitung/validität von daten zu prüfen, anstelle der art der übertragung - alexander! *bump* -------------------- cheers, Alex
|
|
|
Wed. 21. February 2007, 17:46
Beitrag
#16
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
Die Version, die in der beta2 drinne ist, unterstützt das Prüfen des Headers noch nicht. hm, aber in der Mail.php existiert doch die function _sanitizeHeaders(&$headers) wird die nicht ausgeführt? die dateien haben sogar das gleiche erstellungsdatum und die erstellungszeit. wo ist der unterschied? ZITAT und war über äußerst lange urls im access-log doch sehr überrascht ... tja im apache access log siehts du aber per default keine post daten das ist also nur die halbe miete
Bearbeitungsgrund: small edit
-------------------- SEFRENGO | a free choice ... again!
|
|
|
Wed. 21. February 2007, 18:01
Beitrag
#17
|
|
TRAIL AND ERROR SPECIALIST Gruppe: AdvancedMembers Beiträge: 1.708 Mitglied seit: 27.06.2006 Wohnort: Hansestadt Rostock, Deutschland Mitglieds-Nr.: 9 |
tja im apache access log siehts du aber per default keine post daten sag bloss, is ja 'n ding ... versteh mich doch mal ... oder magst du prinzipiell nicht? wenn man irgendwie hacken will fängt man doch nicht mit der etwas komplizierteren methode an, oder etwa doch? mir ist doch sowas von klar das es so oder so möglich ist ... 'n einbrecher haut auch kein loch ins dach um ins haus zu kommen, wenn er viel praktischer die tür eintreten / das fenster einschlagen kann ... wenn ich aber die möglichkeit hab tür und fenster unzerstörbar zu machen, dann tue ich es doch auch und der einbrecher muss bspw. übers dach und dies ist mit mehr aufwand verbunden und hält den einen oder anderen ab überhaupt einzudringen. ... so what?! *lol* -------------------- cheers, Alex
|
|
|
Wed. 21. February 2007, 18:04
Beitrag
#18
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
OK, dann liegt es nicht an dem PEAR Package, sondern am Kontaktformular 1.7.4. Hab das im Changelog wohl falsch dokumentiert. Ich hab inzwischen das Kontaktformular in der Version 1.7.4 ausgegraben und musste feststellen, das in dieser version noch gar kein Versand über PEAR genutzt wird.
Daher: Ein Update auf das Kontaktformular 2.0 behebt das Problem, da dort die PEAR Klassen zum Mailversand genutzt werden. Die Sefrengo Version muss mindestens die beta2 sein, weil erst dort ein PEAR Fehler behoben wurde, der in die gleiche Richtung geht (siehe http://pear.php.net/package/Mail/download/1.1.13). -------------------- Es wird, es wird...
|
|
|
Wed. 21. February 2007, 18:12
Beitrag
#19
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
dies ist mit mehr aufwand verbunden und hält den einen oder anderen ab überhaupt einzudringen. ... so what?! *lol* für einen spammer ist das kein mehraufwand. der ändert einfach den aufruf seines curl befehls von get auf post fertig ... und schon wäre das modul wieder anfällig. -------------------- SEFRENGO | a free choice ... again!
|
|
|
Wed. 21. February 2007, 18:28
Beitrag
#20
|
|
TRAIL AND ERROR SPECIALIST Gruppe: AdvancedMembers Beiträge: 1.708 Mitglied seit: 27.06.2006 Wohnort: Hansestadt Rostock, Deutschland Mitglieds-Nr.: 9 |
right'y'right - nun dann hoffen wir niemand der curl nich kannte, kennt es jetzt und wird ein neuer junger des frühstücksfleischterrorismus ...
... kann jetzt aber erstmal nicht mehr diskutieren ... muss käse und kippen kaufen ... sonst geht die welt noch vor dem 21.12.2012 unter. ich bitte um nachsicht -------------------- cheers, Alex
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 23.4.24 - 22:14 |