Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

2 Seiten V   1 2 >  
Reply to this topicStart new topic
> Spamattacke über Kontaktformular, Versand von illegalen Massenmails
Biene
Beitrag 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.
Go to the top of the page
 
+Quote Post
alexander
Beitrag 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!
Go to the top of the page
 
+Quote Post
amk
Beitrag 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
Go to the top of the page
 
+Quote Post
alexander
Beitrag 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!
Go to the top of the page
 
+Quote Post
amk
Beitrag 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



ZITAT(alexander @ Wed. 21. February 2007, 12:22) *
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
Go to the top of the page
 
+Quote Post
alexander
Beitrag 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



ZITAT(amk @ Wed. 21. February 2007, 14:39) *
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!
Go to the top of the page
 
+Quote Post
amk
Beitrag 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



ZITAT(alexander @ Wed. 21. February 2007, 14:57) *
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
Go to the top of the page
 
+Quote Post
alexander
Beitrag 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



ZITAT(amk @ Wed. 21. February 2007, 15:36) *
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!
Go to the top of the page
 
+Quote Post
amk
Beitrag 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
Go to the top of the page
 
+Quote Post
alexander
Beitrag 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



ZITAT(amk @ Wed. 21. February 2007, 16:30) *
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!
Go to the top of the page
 
+Quote Post
amk
Beitrag 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



ZITAT(alexander @ Wed. 21. February 2007, 16:36) *
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 wink.gif

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
Go to the top of the page
 
+Quote Post
alexander
Beitrag 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



ZITAT(amk @ Wed. 21. February 2007, 16:58) *
server-logs

welche logs genaue? welche tools verwendest du um die postdaten auszuwerten?


--------------------
SEFRENGO | a free choice ... again!
Go to the top of the page
 
+Quote Post
severin Koke
Beitrag 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
Go to the top of the page
 
+Quote Post
bjoern
Beitrag 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...
Go to the top of the page
 
+Quote Post
amk
Beitrag 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



ZITAT(alexander @ Wed. 21. February 2007, 17:00) *
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
Go to the top of the page
 
+Quote Post
alexander
Beitrag 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



ZITAT(bjoern @ Wed. 21. February 2007, 17:28) *
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 wink.gif
Bearbeitungsgrund: small edit


--------------------
SEFRENGO | a free choice ... again!
Go to the top of the page
 
+Quote Post
amk
Beitrag 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



ZITAT(alexander @ Wed. 21. February 2007, 17:46) *
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? wink.gif

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
Go to the top of the page
 
+Quote Post
bjoern
Beitrag 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...
Go to the top of the page
 
+Quote Post
alexander
Beitrag 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



ZITAT(amk @ Wed. 21. February 2007, 18:01) *
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!
Go to the top of the page
 
+Quote Post
amk
Beitrag 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 wink.gif


--------------------
cheers, Alex
Go to the top of the page
 
+Quote Post

2 Seiten V   1 2 >
Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 23.4.24 - 22:14

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.