Sicherheitslücken von Perl?
Andreas
- perl
Hi,
vor ein paar Tagen wurde von irgendeinem Besucher meiner Seite mein komplettes Gästebuch gelöscht. Nicht das Script, aber die Datenbank, in der sich die Gästebucheinträge befinden.
Ich benutze die I/O-Rountinen, die in SELFHTML beschrieben sind und mittlerweile habe ich den Verdacht, daß man durch Senden von bestimmten Parametern an ein CGI eine Datei löschen kann. Ist sowas möglich? Wenn ja, wie kann ich solche Befehle filtern bevor sie etwas anrichten?
Danke!
CU
AZ
Hi Andreas!
Wenn Du z.B. eine Mailadresse eintragen lässt, Du den Eintrag mit sendmail abschickst und die eingegebene Mailadresse nicht auf unzulässige Zeichen checks, dann kann ein böswilliger User Schaden anrichten. Per (pipe) kann er an die Adresse einen UNIX-Befehl hängen, der dann auch ausgeführt wird. Auf der Seite von Wolfgang Wiese (http://www.xwolf.com) findest Du unter Realm of CGI eine Seite bzgl. Sicherheitsaspekten. Du solltest z.B. etwas in der Art in Deinem CGI drin haben:
#Sonderzeichen aus Mail-Adr entfernen, zugelassen: a-z, A-Z, _-+*$.@
$email =~ s/[^a-zA-Z0-9_-+\*$.@]//g;
Gruß Frank
#Sonderzeichen aus Mail-Adr entfernen, zugelassen: a-z, A-Z, _-+*$.@
$email =~ s/[^a-zA-Z0-9_-+\*$.@]//g;
Leerzeichen sind in einer Email nicht erlaubt? Naja, ganz so schlimm ist es ja doch nicht. Man sollte nur keine komischen Zeichen auf der Kommando-Zeile uebergeben. Wenn man nicht gerade mit mailx arbeitet (sondern mit qmail-inject, o. ae.), sind auch komische Zeichen im Body der Email überhaupt kein Problem.
Peter
Hallo Peter!
Hier gings mir nur um die Mail-Adresse, nicht um den Mail-Body:
#Sonderzeichen aus Mail-Adr entfernen, zugelassen: a-z, A-Z, _-+*$.@
$email =~ s/[^a-zA-Z0-9_-+\*$.@]//g;Leerzeichen sind in einer Email nicht erlaubt? Naja, ganz so schlimm ist es ja doch nicht.
Man sollte nur keine komischen Zeichen auf der Kommando-Zeile uebergeben. Wenn man nicht
gerade mit mailx arbeitet (sondern mit qmail-inject, o. ae.), sind auch komische Zeichen im Body
der Email überhaupt kein Problem.
Hi,
vor ein paar Tagen wurde von irgendeinem Besucher meiner Seite mein komplettes Gästebuch gelöscht. Nicht das Script, aber die Datenbank, in der sich die Gästebucheinträge befinden.
Ich benutze die I/O-Rountinen, die in SELFHTML beschrieben sind und mittlerweile habe ich den Verdacht, daß man durch Senden von bestimmten Parametern an ein CGI eine Datei löschen kann. Ist sowas möglich? Wenn ja, wie kann ich solche Befehle filtern bevor sie etwas anrichten?
wie Frank schon sagt, können geschickt gewählte, ungeprüfte Eingaben zum Daten-GAU führen. Möglicherweise liegt es aber einfach an schlechter Programmierung, die nicht beachtet hat, daß mehrere Dateizugriffe gleichzeitig stattfinden können. Wie Du damit umgehst, erfährst Du in
perldoc -f flock
Cheatah
Hi,
vor ein paar Tagen wurde von irgendeinem Besucher meiner Seite mein komplettes Gästebuch gelöscht. Nicht das Script, aber die Datenbank, in der sich die Gästebucheinträge befinden.
Ich benutze die I/O-Rountinen, die in SELFHTML beschrieben sind und mittlerweile habe ich den Verdacht, daß man durch Senden von bestimmten Parametern an ein CGI eine Datei löschen kann. Ist sowas möglich? Wenn ja, wie kann ich solche Befehle filtern bevor sie etwas anrichten?
Danke!
Schau dir doch mal folgende Seite an, und untersuche deinen Code:
http://www.phrack.com/search.phtml?view&article=p55-7
Hi,
vor ein paar Tagen wurde von irgendeinem Besucher meiner Seite mein komplettes Gästebuch gelöscht. Nicht das Script, aber die Datenbank, in der sich die Gästebucheinträge befinden.
Ich benutze die I/O-Rountinen, die in SELFHTML beschrieben sind und mittlerweile habe ich den Verdacht, daß man durch Senden von bestimmten Parametern an ein CGI eine Datei löschen kann. Ist sowas möglich? Wenn ja, wie kann ich solche Befehle filtern bevor sie etwas anrichten?
Hehe. Das kommt davon, wenn man Matt Wright - Code benutzt. Wahrscheinlich hast Du die Daterechte dann noch auf 777 gesetzt, da ist's natuerlich kein Wunder...
Peter