Snyking In – Directory-Traversal-Schwachstelle in der st-Bibliothek ausnutzen
25. Februar 2019
0 Min. LesezeitWillkommen zur ersten Ausgabe unserer neuen Exploit-Serie „Snyking In“! Wir sehen uns verschiedene Sicherheitslücken an und zeigen, wie sie ausgenutzt werden können und welche Risiken sie für Ihre Daten und Systeme bergen. Unsere Beispiele beziehen sich stets auf Bibliotheken aus der Praxis, in denen die jeweilige Art von Schwachstelle in mindestens einer veröffentlichten Version vorkommt.
Und keine Sorge: Wir lassen Sie nicht im Regen stehen! Wir zeigen Ihnen auch, wie Sie Schwachstellen in Ihrer Anwendung finden und beheben. Ohne Umschweife präsentieren wir Ihnen hier unser erstes Exploit-Video und weitere Informationen zur Directory-Traversal-Schwachstelle.
Directory Traversal
Ein Directory-Traversal-Angriff (auch Path Traversal genannt) zielt darauf ab, auf Dateien und Verzeichnisse außerhalb des vorgesehenen Ordners zuzugreifen. Durch die Manipulation von Dateipfaden mit „Punkt-Punkt-Schrägstrich (../)“-Sequenzen und deren Varianten oder durch die Verwendung absoluter Dateipfade kann es möglich sein, auf beliebige Dateien und Verzeichnisse im Dateisystem zuzugreifen – darunter den Quellcode der Anwendung, Konfigurationsdateien und andere wichtige Systemdateien.
Directory-Traversal-Schwachstellen lassen sich grundsätzlich in zwei Typen unterteilen:
Offenlegung von Informationen: Ermöglicht es Angreifern, Informationen über die Ordnerstruktur zu erhalten oder vertrauliche Dateien auf dem System auszulesen.
Beliebige Dateien schreiben: Ermöglicht es Angreifern, Dateien zu erstellen oder vorhandene Dateien zu ersetzen. Diese Art von Schwachstelle ist auch als Zip Slip bekannt.
Directory Traversal in st
Das Modul st stellt statische Dateien auf Webseiten bereit und weist eine Schwachstelle dieser Art auf. In unserem Beispiel stellen wir Dateien über die öffentliche Route bereit.
Wenn ein Angreifer die folgende URL bei unserem Server anfordert, gibt dieser vertrauliche Informationen preis, die auf dem Computer gespeichert sind. Beachten Sie: %2e ist die URL-kodierte Form von . (Punkt).
Diese Art von Directory Traversal ist eine Schwachstelle zur Offenlegung von Informationen. Das bedeutet, dass Angreifer vertrauliche Dateien auslesen können. Der Schaden beschränkt sich auf die Informationen, auf die der Angreifer Zugriff auf dem System erhält.
Der st-Exploit
Im Video oben wird der Angriff in einem Terminalfenster ausgeführt, da der Browser die Eingabe normalisieren würde. Beim ersten Exploit-Versuch wird die Punkt-Punkt-Schrägstrich-Notation verwendet, um aus dem öffentlichen Verzeichnis herauszugelangen:
Die Bibliothek st ist jedoch ziemlich sicherheitsbewusst. Sie schützt vor Directory Traversal mit Punkt-Punkt-Schrägstrich-Notation. URL-kodieren wir jedoch wie zuvor beschrieben den Punkt, lässt sich die Schwachstelle mit folgendem Befehl erfolgreich ausnutzen:
Die Ausgabe zeigt, dass wir nun unter anderem auf die Datei package-lock.json zugreifen können. Dadurch erhalten wir Einblick in die anderen Module und die zugehörigen Versionen, die von der Anwendung verwendet werden. Wie im Video zu sehen, können wir auch tiefer in das Dateisystem vordringen und weitere vertrauliche Informationen offenlegen, etwa die Datei /etc/passwd.
Möchten Sie Ihre Anwendung auf Schwachstellen in Drittanbieter-Bibliotheken wie st testen? Probieren Sie Snyk kostenlos aus und erhalten Sie sofort Ergebnisse.
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.
