Path Traversal

Was ist ein Path-Traversal-Fehler?

Der Path Traversal- oder Directory Traversal-Angriff ist ein Angriff, der die Serverseite von Webanwendungen betrifft.

Obwohl in den OWASP Top 10 nicht eindeutig angegeben, kann diese Schwachstelle zu einem Fehler führen, der in den Top 10 vorhanden ist: Broken Access Control (A5:2017-Broken Access Control | OWASP)

Letzteres gibt einem Benutzer die Möglichkeit, auf Daten oder Funktionalitäten außerhalb seines Aktionsbereichs zuzugreifen, z. B. die Tatsache, dass ein normaler Benutzer das Profil eines beliebigen anderen Benutzers ändern kann, während diese Aktion eigentlich nur Administratoren vorbehalten sein sollte.

Die Path-Traversal-Schwachstelle besteht in der Manipulation von HTTP-Parametern, meist im Query-String, d. h. in der Veränderung der URL, um sensible Ordner oder Dateien in eine Webseite einzubinden.

Folgen einer Path Traversal-Schwachstelle

Der Path-Traversal-Fehler hat einige schwerwiegende Folgen.

  • Exfiltration von Daten: Wenn es dem Angreifer gelingt, Ordner mit sensiblen Dateien einzuschließen, kann er deren Namen sehen und deren Inhalt anzeigen, z. B. eine Benutzer- und Kennwortliste vom Zielsystem.
  • Zugriff auf eingeschränkte Funktionalität: Diese Schwachstelle kann auch zur Ausnutzung anderer Schwachstellen führen:
  • Wiederherstellung des Quellcodes der Website: Bei einem Server, der mit PHP läuft, kann der Angreifer den Quellcode der verschiedenen Seiten einbinden und auf weitere Schwachstellen analysieren.
  • Server-Analyse: Durch das Einbinden von Dateien wie .htaccess hat der Angreifer die Möglichkeit zu verstehen, wie der Server konfiguriert ist.

Die Folgen eines Path-Traversal-Fehlers hängen sehr stark von der Serverkonfiguration ab.

Wie kann ein Path Traversal-Fehler ausgenutzt werden?

1. Normale Nutzung einer Online-Fotogalerie

Nehmen wir eine Website, die es Ihnen ermöglicht, Bilder herunterzuladen, indem Sie ihnen eine Kategorie zuweisen, um sie anzuzeigen.

Loris, der Angreifer, kann ein Bild auswählen und ihm eine Kategorie zuweisen, um es dann an den Server zu senden.

Loris klickt dann auf die Kategorie „Sport“, die dem von ihm hinzugefügten Bild entspricht.

Die URL der Seite lautet dann

http://www.image-online.com?path=sport

Die verschiedenen Bilder dieser Kategorie werden mit der Möglichkeit angezeigt, sie anzuklicken, um sie in einer größeren Größe zu sehen.

2 - Path Traversal Test

Loris geht nun auf die Seite „Sport“ und ändert die URL, indem er „sport“ der Pfadvariablen durch „. / „.

„./“ zeigt den aktuellen Ordner an.

http://www.image-online.com?path=./

Die erscheinende Seite zeigt die verschiedenen Kategorien, die für ein Bild existieren:

Loris weiß nun, dass er sich im Stammordner der verschiedenen Kategorien befindet; er hat ein gutes Verständnis dafür, wie der Server funktioniert.

3. Ausnutzung des Fehlers

Loris Ziel ist es, herauszufinden, wie man dieses Pfad-Traversal nutzen kann, um als Administrator Aktionen durchzuführen.

Die ihm derzeit bekannte Baumstruktur ist:

Wenn er nur die Pfadvariable nimmt und ihren Wert durch ../ ändert, was eine Rückwärtsbewegung im Baum anzeigt, erhält er am Ende andere Datei- und Ordnernamen.

Wir sehen einen „Users“-Ordner und indem er „../“ durch „../Users“ ersetzt, findet Loris eine Liste von Dateien, die sich auf verschiedene Benutzer zu beziehen scheinen:

Indem er die URL der Seite http://www.image-online.com/Users/Paul.txt ändert, erhält Loris alle auf der Festplatte gespeicherten Informationen zurück, einschließlich des Passworts.

Er muss sich nur mit seinen Daten authentifizieren, um ein Admin-Konto zu erhalten.

OWASP-Empfehlungen

Das Open Web Application Security Project (OWASP) bietet einen Leitfaden zur Vermeidung von Path-Traversal-Schwachstellen. Wir werden hier die verschiedenen Optionen zusammenfassen, die Entwicklern zur Verfügung stehen.

  • Vermeiden Sie die Verwendung von Benutzereinträgen zum Einbinden lokaler Dateien: Dadurch wird verhindert, dass ein Benutzer einen Path-Traversal-Fehler testen kann.
  • Nur vordefinierte Werte akzeptieren: Dies kann durch eine Reihe von Bedingungen im serverseitigen Code ausgeführt werden.
  • In diesem Fall ist es notwendig, Benutzereingaben zu escapen, um Pfad-Traversal-Muster zu vermeiden. (wie z. B. „../“)

R&S®Cloud Protector vs Path Traversal

Um die Ausnutzung von Path-Traversal-Fehlern zu verhindern, verfügt R&S®Cloud Protector über eine effektive Methode:

  • Erkennung bösartiger Muster: R&S®Cloud Protector erkennt automatisch die beim Path Traversal verwendeten Muster, um bösartige Anfragen zu blockieren und umzuleiten
  • Entschlüsselung von Mehrfachverschlüsselungen: R&S®Cloud Protector kann verschlüsselte Zeichen transformieren, um sie zu verifizieren.

Mit der obigen Übersetzung können wir verstehen, dass %252e%252e%252f %2e%2e%2f ergeben wird  ../

Fordern Sie Ihre 14-tägige gratis Testversion an

In nur 60 Sekunden Websites und Anwendungen schützen Worauf warten Sie?