|
|
|
|
|
|
Master of Kataster
Registrierungsdatum: Mar 2001
Ort: Hamburg
Beiträge: 222
|
Verzeichnisse auf einem Webserver scannen ?
Hallo alle zusammen,
es geht um eine Sicherheitsfrage, die wohl jeden Webmaster hier betrifft:
Ist es möglich, Verzeichnisse auf einem Webserver zu scannen - obwohl eine gültige Defaultseite - also eine index.htm (oder vergleichbares) - existiert ?
Mich interessiert dies speziell bzgl. Apache 2.0.x auf Linux.
Kann ein Angreifer so die Inhalte von Dateien lesen, die sich im Dokumentenverzeichnis meines Werbservers (oder in Unterverzeichnissen) befinden, die ich aber über den "normalen" Weg über die index.htm (oder index.php etc.) und die darin angegeben Links nicht zur Verfügung stelle ?
Klar - zurstmal gibt es in der httpd.conf einen Schalter, der Directory Scans unterbindet, oder ? Aber der kommt doch eh erst zum Tragen, wenn keine Default-Seite wie index.htm etc. vorhanden wäre ?
Worum es mir geht:
Ich habe einen Apachen laufen, auf dem ich PHP-Scripte ablege. In den Scripten befinden sich SQL-Statements etc. die unter keinen Umständen von Dritten ausgelesen werden dürfen.
Beim normalen Aufruf ist das ja auch kein Problem. Die phps generieren HTML Code ohne die SQL Statements etc.
ABER: Ich frage mich nun: Kann man das hacken ? Mit welchen Mitteln kann jemand an meine "Quelltexte" rankommen - und was muss ich tun, um das zu unterbinden ?
Danke für Eure Antworten
teejay
|
03. 02. 2004, 10:40
|
#1
|
|
Klugsh1c3r
Registrierungsdatum: Aug 2001
Ort: Deutschland
Beiträge: 379
|
Kurze und knappe Antwort: Nein, es kommt niemand an den Quellcode deiner PHP-Skripte ran, wenn diese interpretiert werden und nur die Ausgabe gesendet wird. Genausowenig kann jemand in ein Verzeichnis schauen, wenn DirectoryListings abgeschaltet sind (und du nicht selbst einen Index erstellst).
|
03. 02. 2004, 11:27
|
#2
|
|
Retreat
Registrierungsdatum: Aug 2000
Beiträge: 11.530
|
Trotzdem kann es bei einer Fehlfunktion Angreifern erlaubt werden, Verzeichnisse aufzulisten, oder gar PHP Dateien im Quellcode anzuzeigen (es gibt zwar aktuell keine derartigen Lecks, es kann aber theoretisch immer der Fall sein).
Sensible Daten sollten daher möglichst immer außerhalb des DOCUMENT_ROOT gelagert sein.
|
03. 02. 2004, 12:33
|
#3
|
|
ILLUMINATUS PRIMUS!
Registrierungsdatum: Apr 2001
Beiträge: 17
|
und PW-Files zb von einer DB immer per require(); einbinden.
Dann sind die Zugangsdaten auch nicht sichtbar wenn der Sever down ist..
|
18. 02. 2004, 20:05
|
#4
|
|
Mitglied
Registrierungsdatum: Aug 2000
Ort: HU
Beiträge: 654
|
"Dann sind die Zugangsdaten auch nicht sichtbar wenn der Sever down ist.."
a) Wenn der Server down ist, ist gar nichts sichtbar.
b) Wenn der Apache noch rennt und dummerweise mod_php ausfällt (aus welchen Gründen auch immer), sieht man dann auch die require()-Aufrufe und kann - solange die damit aufgerufenen Dateien innerhalb von DocumentRoot liegen - die so eingebunden Konfigurationsdateien natürlich ebenfalls im Browser aufrufen und angucken.
In 99,9% aller Fälle tritt aber Fall a) auf...
|
18. 02. 2004, 21:45
|
#5
|
|
The M.I.P.
Registrierungsdatum: Apr 2002
Ort: 127.0.0.1
Beiträge: 3.715
|
Man kann auch zu inkludierende Dateien in einem Verzeichnis innerhalb des DOCUMENT_ROOTs ablegen und dies dann per deny from all schützen.
|
19. 02. 2004, 14:07
|
#6
|
|
Mitglied
Registrierungsdatum: Jul 2003
Ort: http://localhost
Beiträge: 1.080
|
Zitat:
... Genausowenig kann jemand in ein Verzeichnis schauen, wenn DirectoryListings abgeschaltet sind (und du nicht selbst einen Index erstellst).
|
das stimmt so nicht ... denn es gibt programme mit denen man je nach server OS vers. & einstellungen (unabhängig davon ob DL an oder aus ist) die verzeichnisse auslesen kann.
|
19. 02. 2004, 15:59
|
#7
|
|
Klugsh1c3r
Registrierungsdatum: Aug 2001
Ort: Deutschland
Beiträge: 379
|
Zitat:
Original geschrieben von JOat
das stimmt so nicht ... denn es gibt programme mit denen man je nach server OS vers. & einstellungen (unabhängig davon ob DL an oder aus ist) die verzeichnisse auslesen kann.
|
I. d. R. funktionieren diese Programme aber nicht, ausser der Server-Admin ist total hirnverbrannt. Wenn alte und fehlerhafte Versionen eingesetzt werden ist das sicherlich möglich (wenn die Versionen auch sehr alt sein müssen), aber sonst gibt es keine Möglichkeit, an den Verzeichnisinhalt zu kommen, wenn DirectoyListings deaktiviert sind.
|
19. 02. 2004, 16:08
|
#8
|
|
Mitglied
Registrierungsdatum: Jul 2003
Ort: http://localhost
Beiträge: 1.080
|
naja..... man kann aber davon ausgehen das 50% der server bei solchen programmen ansprechen... wobei den 50% natürlich auch die dabei sind bei denen DL an ist
|
19. 02. 2004, 16:37
|
#9
|
|
Retreat
Registrierungsdatum: Aug 2000
Beiträge: 11.530
|
Naja, wir wollen mal nicht übertreiben
|
19. 02. 2004, 17:05
|
#10
|
|
Master of Kataster
(Threadstarter)
Registrierungsdatum: Mar 2001
Ort: Hamburg
Beiträge: 222
|
Nungut,
Danke für Eure Hilfe. Meine Erkenntnis, die ich aus Euren Antworten ziehe:
- Sensible "includes" nicht ind ie Document Root
- Solange mein Apache halbwegs aktuell ist, kommt mit derzeitigen Mitteln auch keiner an meine PHP-Scripte und hidden Files
---------------------------------
Nun meine nächste Frage - zum ähnlichen Thema:
Mittels .htaccess und mod_rewrite kann ich den Zugriff auf bestimmte Verzeichnisse so beschränken, daß man nur reinkommt, wenn man von einer bestimmten seite kommt (Referrer).
Beispiel:
Zugriff auf http://<server>/wichtig/
nur, wenn man von http://<server>/login.php kommt.
Alle anderen Zugriffe auf http://<server>/wichtig/ werden nach http://<server> umgeleitet.
Nun die Sicherheitsfrage:
der Referrer ist doch auch nur ein Datensatz, der von meinem Browser an den Webserver weitergegeben wird.
Ist diese Methode dann überhaupt sicher ?
Es gibt doch sicher Webbrowser, mit denen man den referrer faken kann, oder ?
Gruß big.teejay
|
22. 07. 2004, 00:35
|
#11
|
|
The M.I.P.
Registrierungsdatum: Apr 2002
Ort: 127.0.0.1
Beiträge: 3.715
|
Zitat:
Original geschrieben von big.teejay
Ist diese Methode dann überhaupt sicher ?
Es gibt doch sicher Webbrowser, mit denen man den referrer faken kann, oder ?
|
Das Checken des Referrers ist nicht sicher, da man den Referer-Header nur allzu leicht fälschen kann. Hinzu kommt, dass der Header optional ist, also nicht unbedingt vom Client gesendet wird.
Gängige Webseitendownloader (HTTrack, Getright, etc.) beherrschen das Fälschen dieses Headers ("Spoofen") sogar von Hause aus. Beim Einsatz von Webbrowsern kann man z.B. einen filternden Proxy-Server (z.B. Proxomitron) zum Spoofen verwenden oder auf Tools wie ZSpoof zurückgreifen.
Meist reicht es aus, den angefragten URL gleichsam als Referrer zu senden, um die Referrer-Überprüfung zu "überlisten".
Der Einsatz von Referrer-Checks macht nur Sinn, wenn Du die ganze Sache statistisch betrachtest, es Dir also z.B. reicht, einen gewissen Prozentsatz Deiner Besucher mit gewisser Wahrscheinlichkeit von irgendwelchen Aktionen (z.B. Direktverlinkung von Dateien) abzuhalten.
|
22. 07. 2004, 03:20
|
#12
|
|
Master of Kataster
(Threadstarter)
Registrierungsdatum: Mar 2001
Ort: Hamburg
Beiträge: 222
|
Cool !
Eine wirklich umfassende Antwort, die alle meine Fragen beantwortet !
Danke !
|
22. 07. 2004, 07:58
|
#13
|
|
Retreat
Registrierungsdatum: Aug 2000
Beiträge: 11.530
|
Man brauch übrigens keine Spezialprogramme Referer zu faken, wget kann das und jedes 3 Zeilen Perl Script auch
|
22. 07. 2004, 08:07
|
#14
|
|
Alle Zeitangaben in UTC +1. Es ist jetzt 21:08 Uhr.
|
|