Verzeichnisstruktur sichtbar
CWE-548CWE-200OWASP A05:2021Aktualisiert 4. September 20264 Min. Lesezeit
Zeigt ein Webserver den Inhalt eines Ordners, weil keine Indexdatei vorhanden ist, muss ein Angreifer nicht mehr raten, welche Dateien es gibt. Er liest die Liste schlicht ab: Sicherungen, Exporte, Protokolldateien und Dateien, die nie zur Veröffentlichung gedacht waren.
Ein Angreifer, der nicht weiß, welche Dateien auf einem Server liegen, muss raten. Ist Directory Listing eingeschaltet, entfällt das: Der Webserver liefert das Inhaltsverzeichnis selbst. Das ist wegen der Liste selbst selten schwerwiegend und wegen dessen, was im Lauf der Jahre in einem solchen Ordner liegen geblieben ist, häufig sehr wohl. Die Folgen reichen weiter als ein unordentlicher Eindruck.
Was ist Directory Listing?
Directory Listing bezeichnet das Verhalten, bei dem ein Webserver auf eine Anfrage nach einem Ordner ohne Indexdatei eine Übersicht des Inhalts zurückgibt statt einer Fehlermeldung. Sie sehen dann eine Liste mit Dateinamen, Größen und Änderungsdaten, genau wie eine Dateiverwaltung sie zeigen würde.
Es ist ein Standardverhalten, das einst für einfache Dateiarchive nützlich war und in manchen Serverkonfigurationen noch immer eingeschaltet ist. Bei einer modernen Webanwendung ist es so gut wie nie erwünscht.
Die Wirkung gleicht dem Unterschied zwischen einem geschlossenen Aktenschrank und einem offenen Regal. In beiden Fällen findet jemand, der genau weiß, was er sucht, es vielleicht. Bei einem offenen Regal muss er jedoch nichts wissen: Er geht vorbei und liest die Rücken.
Was gibt ein Directory Listing preis?
Verwundbar:
GET /uploads/ HTTP/1.1
Host: portal.example
HTTP/1.1 200 OK
Index of /uploads
Name Geändert Größe
../
kundenliste-2024.xlsx 2024-11-03 14:22 842K
config.php.bak 2023-06-12 09:41 4.1K
datenbank-dump.sql.gz 2025-02-18 03:00 64M
test-rechnung.pdf 2025-07-29 16:05 112K
.env.alt 2023-01-08 11:33 1.2K
Die Liste selbst ist nicht das Problem; der Inhalt ist es. Dort liegen eine Kundendatei, ein Datenbankexport, eine Sicherung einer Konfigurationsdatei und eine alte Umgebungsdatei. Keine dieser Dateien wurde je bewusst veröffentlicht; sie sind dort gelandet, weil der Ordner praktisch war. Ohne Listing hätte ein Angreifer die Namen raten müssen, und datenbank-dump.sql.gz mit genau diesem Namen errät niemand. Nun steht er einfach da.
Sicher:
# Das Abschalten auf Serverebene gilt für alles, auch für neue Ordner
autoindex off;
# Und die Dateien, die ohnehin nicht dort liegen sollten
location ~ \.(bak|old|orig|sql|gz|env|log)$ {
deny all;
return 404;
}
# Apache
Options -Indexes
Das Abschalten ist eine Zeile und gilt sofort für jeden Ordner, einschließlich später angelegter. Die zusätzliche Sperre für Dateiendungen ist ein Auffangnetz für den Fall, dass dennoch etwas dort landet, wo es nicht hingehört.
Die strukturelle Maßnahme geht über die Konfiguration hinaus: Dateien, die nicht öffentlich sein sollen, gehören nicht in das Webverzeichnis. Bewahren Sie Exporte, Sicherungen und von Nutzern hochgeladene Dateien außerhalb des veröffentlichten Ordners auf und liefern Sie sie über eine Route aus, die zuvor autorisiert.
Welche Auswirkungen hat eine sichtbare Verzeichnisstruktur?
Der Schweregrad reicht von niedrig bis hoch, und diese Spannweite ist hier berechtigt: Er bestimmt sich vollständig danach, was in dem Ordner liegt. Liegen dort nur Bilder, die ohnehin öffentlich sind, ist wenig geschehen.
Das Risiko entsteht durch die Zeit. Ordner, die mit einem klaren Zweck angelegt wurden, füllen sich mit dem, was zwischendurch abgelegt wurde: ein Export für einen Kollegen, eine Sicherung zur Vorsicht, eine Testdatei aus einer Migration. Jede davon wurde aus einem guten Grund erstellt, und niemand hat daran gedacht, sie zu entfernen. Directory Listing macht diese gesamte Sammlung in einer Anfrage sichtbar.
Hinzu kommt der Erkundungswert. Selbst ohne sensible Dateien verrät die Liste, wie Ihre Anwendung aufgebaut ist: welche Bestandteile es gibt, welche Dateinamen verwendet werden, wann zuletzt gearbeitet wurde. Das macht gezielte Folgeversuche deutlich wirksamer, etwa bei der Suche nach Dateien in anderen Ordnern.
Wie spürt man eine sichtbare Verzeichnisstruktur auf?
Ein Tester ruft die aus der Anwendung bekannten Ordner ab, also die Pfade, aus denen Bilder, Stylesheets und Dokumente geladen werden, und prüft, ob eine Liste statt einer Fehlermeldung erscheint. Zusätzlich wird mit einer Liste häufiger Ordnernamen gesucht: uploads, backup, temp, alt, export, logs, admin, test.
Wird eine Liste gefunden, verlagert sich die Aufmerksamkeit auf den Inhalt: Dateien mit Endungen, die auf Sicherungen oder Exporte hindeuten, Dateien mit einem kürzlichen Änderungsdatum und Dateien, die durch ihre Größe auffallen. Ebenso wird geprüft, ob das Listing nur bei manchen Ordnern eingeschaltet ist, was darauf hindeutet, dass der Schutz je Ordner geregelt ist statt zentral, eine Lage, die bei der nächsten Ergänzung erneut schiefgeht. AssistSec verbindet dies mit einer breiteren Suche nach nicht verlinkten Dateien, denn das Abschalten des Listings entfernt die Dateien selbst nicht, und diese bleiben unmittelbar abrufbar.
Wie verhindert man eine sichtbare Verzeichnisstruktur?
- Schalten Sie Directory Listing auf Serverebene ab, damit die Einstellung für alle Ordner gilt.
- Bewahren Sie Sicherungen, Exporte und Protokolldateien außerhalb des veröffentlichten Ordners auf.
- Liefern Sie von Nutzern gelieferte Dateien über eine Route aus, die zuvor autorisiert.
- Sperren Sie Endungen, die auf Sicherungen und Exporte hindeuten, als ergänzendes Auffangnetz.
- Prüfen Sie die Einstellungen Ihres Objektspeichers gesondert; sie sind von Ihrem Webserver unabhängig.
- Verlassen Sie sich nicht auf eine leere Indexdatei; sie verbirgt die Liste, behebt die Konfiguration aber nicht.
- Räumen Sie regelmäßig auf, was tatsächlich im Webverzeichnis liegt, statt dessen, was dort liegen sollte.
- Wiederholen Sie die Prüfung nach einer Servermigration, denn Standardkonfigurationen kehren dann zurück.
Quellen
Häufige Fragen
Ist eine leere Indexdatei eine Lösung?
Sie verbirgt die Liste, behebt die Konfiguration aber nicht. Die Dateien bleiben unmittelbar abrufbar, und ein vergessener Ordner genügt, damit die Liste doch erscheint. Schalten Sie die Funktion in der Serverkonfiguration ab; das gilt dann für alles, auch für später hinzugefügte Ordner.
Wie groß ist das Risiko, wenn dort nur Bilder liegen?
Dann bleibt es begrenzt, und der Schweregrad ist niedrig. Das Risiko entsteht dadurch, dass Ordner sich mit der Zeit mit dem füllen, was dort nicht hingehört: ein Export aus dem Vorjahr, eine Sicherung einer Konfigurationsdatei, eine Testdatei. Directory Listing macht diese ganze Sammlung auf einen Blick sichtbar.
Warum finden Angreifer diese Ordner so schnell?
Weil automatisiert mit Listen häufiger Ordnernamen gesucht wird. Uploads, backup, temp, alt, export und logs stehen alle darauf. Es braucht keinen Link dorthin; der Ordner muss lediglich existieren.
Gilt das auch für Objektspeicher in der Cloud?
Ja, und dort ist es eine bekannte Quelle von Datenlecks. Ein Speicher-Bucket, dessen Inhalt sich auflisten lässt, wirkt genau wie Directory Listing. Prüfen Sie diese Einstellungen gesondert, denn sie sind von der Konfiguration Ihres Webservers unabhängig.
Verwandte Artikel
- SchwachstellenCWE-1188A05:2021Standarddateien des Webservers erreichbarBeispielseiten, Verwaltungskonsolen und Installationsdateien, die nach der Einrichtung stehen bleiben, verraten Ihre Plattform und sind mitunter missbrauchbar.
- SchwachstellenCWE-200A01:2021Information DisclosureInformation Disclosure erklärt: wie Stack Traces, .git-Verzeichnisse, Source Maps und zu großzügige API-Antworten Daten preisgeben.
- SchwachstellenCWE-200A05:2021Metadaten in veröffentlichten DateienDokumente und Fotos tragen verborgene Angaben mit sich: Namen, interne Pfade, Software und mitunter Standorte. Lesen Sie, wie Sie diese entfernen.
- SchwachstellenCWE-16A05:2021Security MisconfigurationSecurity Misconfiguration erklärt: wie Standardpasswörter, Debug-Modi und offene Cloud-Buckets Angreifern Zugang geben, und wie Sie sich schützen.
- SchwachstellenCWE-527A05:2021Quellcode öffentlich erreichbarEin mitveröffentlichter .git-Ordner oder eine Sicherungsdatei gibt Ihren gesamten Quellcode preis, samt Passwörtern aus alten Commits.