Directory/Path Travelersal
Inhaltsverzeichnis
Was ist Directory/Path Traversal?
Beim Directory/Path Traversal (Pfaddurchlauf) verwendet die Software eine externe Eingabe, um einen Pfadnamen zu erstellen, mit dem eine Datei oder ein Verzeichnis identifiziert werden soll, der sich unter einem eingeschränkten übergeordneten Verzeichnis befindet. Die Software neutralisiert jedoch keine speziellen Elemente innerhalb des Pfadnamens, die dazu führen können, dass der Pfadname an einen Speicherort aufgelöst wird, ist außerhalb des eingeschränkten Verzeichnisses.
Beschreibung
Eine unvollständige Diagnose oder Meldung von Schwachstellen kann es schwierig machen, zu wissen, welche Variante betroffen ist. Zum Beispiel könnte man sagen, dass “.. ” verwundbar ist, nicht aber “../”, der auch verwundbar sein könnte. Eine beliebige Kombination von Verzeichnistrennzeichen (“/”, “” usw.) und Nummern von “.” (z. B. “….”) können eindeutige Varianten erzeugen; die Variante “//../” wird beispielsweise nicht aufgelistet.
Viele Dateioperationen sollen innerhalb eines eingeschränkten Verzeichnisses stattfinden. Durch die Verwendung spezieller Elemente wie “..” und “/” Trennzeichen können Angreifer außerhalb des eingeschränkten Speicherorts auf Dateien oder Verzeichnisse zugreifen, die sich an anderer Stelle im System befinden.
Eines der häufigsten Spezialelemente ist die Sequenz “../”, die in den meisten modernen Betriebssystemen als übergeordnetes Verzeichnis des aktuellen Speicherorts interpretiert wird. Dies wird als relativer Pfaddurchlauf bezeichnet. Das Durchlaufen von Pfaden umfasst auch die Verwendung absoluter Pfadnamen wie “/ usr / local / bin”, was auch beim Zugriff auf unerwartete Dateien hilfreich sein kann. Dies wird als absoluter Pfaddurchlauf bezeichnet.
In vielen Programmiersprachen kann der Angreifer durch die Injektion eines Null-Bytes (0 oder NUL) einen generierten Dateinamen abschneiden, um den Angriffsbereich zu erweitern. Beispielsweise kann die Software jedem Pfadnamen “.txt” hinzufügen, wodurch der Angreifer auf Textdateien beschränkt wird. Durch eine Null-Injektion kann diese Einschränkung jedoch effektiv beseitigt werden.
Prüfung auf die Schwachstelle
Mit Scannern wird versucht auf Dateien und Verzeichnisse außerhalb des Webdokumentenstamms zuzugreifen, indem verschieden Kombinationen von Pfadnamen-Präfixen und lokalen Dateizielen für Windows- und *NIX-Systeme sowie Java-Servlets erstellt werden. Wenn der Haupttext der Antwort mit einem Muster übereinstimmt, das der aktuellen Zieldatei entspricht, wird eine Warnung ausgegeben und der Scanner kehrt sofort zurück.
Wenn keines der gemeinsamen lokalen Daten-Ziele erfolgreich ist, wird der Pfaddurchlauf unter Verwendung des Dateinamens in der URL versucht. Solange das Senden eines beliebigen Dateinamens keinen OK-Status zurückgibt, aber der tatsächliche Dateiname dies macht, wird eine Warnung ausgegeben und der Scanner kehrt sofort zurück.
Tipp
Überprüfen Sie die Sicherheit Ihrer Website mit unserem kostenlosen Security Crawler oder mit der OSG Performance Suite Free Version.
Lösung
Phase: Architektur und Design
Stellen Sie für alle Sicherheitsprüfungen, die auf Clientseite ausgeführt werden, sicher, dass diese Prüfungen auf der Serverseite doppelt vorhanden sind. Angreifer können die clientseitigen Prüfungen umgehen, indem sie Werte ändern, nachdem die Prüfungen ausgeführt wurden, oder indem der Client so geändert wird, dass die clientseitigen Prüfungen vollständig entfernt werden. Diese geänderten Werte werden dann an den Server übermittelt.
Phase: Implementierung
Stellen Sie sicher, dass die Fehlermeldungen nur minimale Details enthalten, die für die beabsichtigte Zielgruppe nützlich sind, und für niemanden anderen. Die Nachrichten müssen das Gleichgewicht zwischen zu kryptisch und nicht kryptisch genug finden. Sie sollten nicht unbedingt die Methoden offenlegen, mit denen der Fehler ermittelt wurde. Solche detaillierten Informationen können verwendet werden, um den ursprünglichen Angriff zu verfeinern, um die Erfolgschancen zu erhöhen.
Wenn Fehler detailliert nachverfolgt werden müssen, erfassen Sie sie in Protokollnachrichten. Berücksichtigen Sie jedoch, was geschehen könnte, wenn die Protokollnachrichten von Angreifern angezeigt werden können. Vermeiden Sie:
- hochsensible Informationen wie Passwörter in irgendeiner Form aufzuzeichnen.
- inkonsistente Nachrichten, bei denen ein Angreifer versehentlich über den internen Status informiert wird, z.B. ob ein Benutzername gültig ist oder nicht.
Im Zusammenhang mit der Pfaddurchquerung können Fehlernachrichten, die Pfadinformationen offenlegen, Angreifern dabei helfen, die geeigneten Angriffszeichenfolgen zu erstellen, um sich durch die Dateisystemhierarchie zu bewegen.
Datenbanklink zur Schwachstelle
Sie haben noch Fragen?