Directory/Path Travelersal

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

Die Äquivalenz des Pfadnamens kann als eine Art kanonisierter Fehler betrachtet werden. Einige Probleme mit der Äquivalenz von Pfadnamen beziehen sich nicht direkt auf das Durchsuchen von Verzeichnissen, sondern werden verwendet, um sicherheitsrelevante Überprüfungen dahingehend zu umgehen, ob der Angreifer auf eine Datei/ein Verzeichnis zugreifen kann. 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

https://cwe.mitre.org/data/definitions/22.html


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte