Moin
Wenn ich nichts besseres zu tun hab, rufe ich das Skript mit skript.php?action=indb&datei=/etc/passwd auf und schon ist die Systempasswortdatei in der Datenbank und kann von dort aus evt. ausgelesen werden. Auf diese Art kann ich dann _jede_ Datei lesen, auf die der Webserver Zugriff hat. Das sind neben der interessanten Passwortdatenbank evt. auch Konfigurationsdateien der verwendeten Skripte mit den darin enthaltenen Passwörtern, etc.
- Wenn man die Datei öffnet, werden die Passwörter nich angezeigt
- Ist bei den Providern PHP so konfiguriert, dass man nur in einem bestimmten Pfad Dateien öffnen kann!
Wohl ein bisschen suizidal veranlagt, was?
zu 1. Man tut die Datei sicher nicht in die Datenbank damit die Datenbank mal wieder was zu tun hat. In der einen oder anderen Form kommt der Inhalt auch wieder raus. Es kann sein, dass das dann nur an dich geht, muß aber nicht. In der Datenbank, die evt. über das Skript einsehbar ist, liegt die Datei jedenfalls viel unsicherer als im lokalen Dateisystem.
zu 2. Öhöm, nicht wirklich.
Ja, einige Provider haben PHP im CGI-Modus mit suid-wrappern laufen, so dass die Skripte nur die Dateien lesen können, die dir gehören. Trotzdem ist es sehr wahrscheinlich dass da auch die Konfigurations-Dateien deiner Skripte mit den Master- und/oder Datenbankpasswörtern, evt. die .htpasswd-Dateien sowie sonstige interessante Informationen drin sind. Wenn du schon an so einfachen Stellen wie der Überprüfung der Dateiuploads versagst, ist es wahrscheinlich, dass du noch mehr Sicherheitslücken eingebaut hast, so dass die Kenntnis der .php-Dateien auch sehr nützlich sein könnte, um diese auszunutzen.
Ja, einige Provider lassen PHP im safe-mode laufen, was unter anderem dazu führt, dass Dateien nur aus einem bestimmten Verzeichnis geöffnet werden können. Und falls es nicht dazu führt, das das mit den Dateiuploads ohnehin nicht klaptt, so schützt es dich auch nicht davor deine eigenen Dateien zu lesen.
Merkst du was? Nicht alle Provider machen das, und das ist gut so. Dein Skript sollte nicht kaputtgehen und böse Angriffe erlauben, bloss weil ein Provider andere Einstellungen hat, als ein anderer. Zumal die genannten Einstellungen nur bei Massenhostern halbwegs verbreitet sind.
Wenn du glaubst, dass du dich über elementare Sicherheitsaspekte hinwegsetzen kannst, ist das dein Bier. Aber du und ich sind nicht die einzigen die den Thread hier lesen, also bitte vermittle denjenigen die noch nicht den vollen Durchblick haben, keine falschen Vorstellungen.
Traurige Kapitel wie http://www.securityfocus.net/search?category=23&query=php+file kommen nicht einfach so aus dem nichts.
--
Henryk Plötz
Grüße aus Berlin