Seite 1 von 1

Kontaktformular knacken

Verfasst: 20.01.2007, 19:57
von Neno
Hallo,
vielleicht ist das eine paranoide Frage. Angenommen die Eingaben des Kontaktformulars werden per PHP überprüft und an die im code angegebene Email-adresse verschickt. Im Gegensatz zu JavaScript ist dieser Code für aussenstehende nicht sichtbar, richtig? Wäre es für einen Außenstehenden möglich die Eingaben abzufangen und an eine beliebige Email-Adresse zu senden? Und zwar ohne dass eigener Code in das PHP-Script eingeschmuggelt wird.

Gruß
Neno

Verfasst:
von

Verfasst: 20.01.2007, 21:18
von Hasso
"überprüft" ist viel zu allgemein...

Je nach dem wie das Quelltext des Skriptes konkret "geschrieben" ist, wäre es eventuell möglich eine oder andere "Hintertür" zu öffnen und böswillig auszunutzen.

Grüsse
Hasso

Verfasst: 20.01.2007, 22:57
von Michael
Die Aussagen sind viel zu allgemen. Bei den Infos die ich besher habe kann ich den Fall nicht ausschließen.

1. Wo liegt das Kontaktformular
2. Müsste man sich mal die Sourcen ansehen
3. Ist Cross-Site Scripting möglich
4 ...
usw.

Gruß
Michael

Verfasst:
von

Verfasst: 21.01.2007, 18:10
von Neno
ok, dann werde ich bißchen konkreter. Es wird überprüft, ob ein Feld leer ist, z.B. mit diesem Code:
if(trim($name)=="") $err_text.="Name fehlt.<br>";

Da der Name in die Betreffzeile geht, werden hier die Backslashes vor Sonderzeichen entfernt, so: $name = stripslashes($name);

Alle anderen Eingaben des Benutzers gehen in den Rumpf der Email, wo dies Backslashes nicht entfernt werden. Die Email-Adresse wird einer Variablen zugeordnet und über mail($zu,$betreff,$text,$kopf) verschickt.
Das Kontaktformular liegt im Hauptverzeichnis meiner URL und heisst kontakt.php
Was ist Cross-Site Scripting?

Gruß
Neno

Verfasst: 21.01.2007, 19:32
von d0nut
und wo wird $zu gesetzt? auch per formular?
Wenn $zu fest drinne steht, dann geht die mail schonmal immer an dich

Cross Site Scripting Beispiel:
Es gibt VIELE leute im internet die ihre links so aufbauen index.php?include=test
Viele Davon laden dann keinen SQL Content mit test, sondern binden eine seite test.php ein
z.B.: include($_GET['include'].'.php')

Und das ist das typische cross site scripting opfer.. denn so kann man sich natürlich auch configurationsdateien, etc laden lassen

Verfasst: 21.01.2007, 20:13
von Neno
d0nut hat geschrieben:und wo wird $zu gesetzt? auch per formular?
Wenn $zu fest drinne steht, dann geht die mail schonmal immer an dich
$zu steht ein paar zeilen über der mailfunktion, etwa so:
$zu="xyz@web.de"
...
mail($zu, $betreff, $text) oder wäre es so besser: mail("xyz@web.de", $betreff, $text)

Cross-Site Scripting hab ich dann nicht, weil bei mir die Prüfung der Usereingaben und die Email-Adresse an die die Eingaben verschickt werden in einer Datei (kontakt.php) untergebracht sind. Was hälst du davon, nicht nur die Backslashes (mit stripslashes()) zu entfernen, sondern auch die HTML und PHP-Tags (mit strip_tags), so das der Code so aussieht: strip_tags(stripslashes($name)). Ist das notwendig oder werde ich jetzt paranoid?

Gruß
Neno

Verfasst: 21.01.2007, 23:25
von spickzettel
Zwei Artikel, die eine Reihe fieser Sachen beleuchten :-)

https://www.heise.de/security/artikel/66815
https://www.danielfett.de/df_artikel_si ... ssbrauchen