
Ein Schritt-für-Schritt-Workshop zur Ausnutzung verschiedener Schwachstellen in Node.js- und Java-Anwendungen
In diesem Schritt-für-Schritt-Workshop lernen Sie, wie Sie verschiedene reale Schwachstellen ausnutzen können, die in anfälligen Versionen von Paketen in einer Node.js- und Java-Anwendung existieren.
Sie können diesen Workshop auf zwei verschiedene Arten durchführen:
ODER
Dieser Workshop führt Sie durch die Installation und das Ausnutzen einer Reihe von absichtlich anfälligen Anwendungen. Die Anwendungen verwenden reale Pakete mit bekannten Schwachstellen, darunter:
Diese Exploits existieren in einer Reihe von Anwendungen, von denen Sie die meisten entweder lokal oder auf einer Cloud-Instanz installieren müssen. Die folgenden Anleitungen führen Sie durch die lokalen Installationen, aber Sie können sie gerne auch auf entfernten Cloud-Instanzen ausprobieren.
Für jeden Schwachstellenabschnitt in diesem Workshop erhalten Sie Informationen über die Schwachstelle sowie über das Paket, in dem sie existiert. Sie werden ermutigt, zuerst durch Versuch und Irrtum zu versuchen, die Anwendung zu hacken, ohne irgendwelche Hinweise zu lesen. Versuchen Sie, darüber nachzudenken, wie Sie die Bereinigung der Anwendung austricksen können, und versetzen Sie sich in die Gedankenwelt eines Hackers. Die Hinweise sind für den Fall da, dass Sie nicht weiterkommen. Lesen Sie sie also der Reihe nach, wenn Sie Hilfe benötigen. Wenn Sie den Hack ohne Hinweise schaffen, ist das großartig! Es kann jedoch gut sein, die Hinweise hinterher zu lesen, um sicherzustellen, dass Sie auf die gleiche Weise eingebrochen sind wie wir! Außerdem können darin kleine Tipps enthalten sein, von denen man ebenfalls lernen kann.
Je nach Ihrer Wahl wählen Sie das passende Installationshandbuch aus:
Navigieren Sie in Ihrem bevorzugten Browser zu http://localhost:3001. Sie sollten die folgende Seite sehen.

Nehmen Sie sich ein paar Minuten Zeit, um die Seite zu erkunden. Erstellen Sie insbesondere ein paar Todo-Einträge, indem Sie normalen Text wie "Milch kaufen" sowie Markdown wie "Kaufe **viel** Milch" verwenden. Navigieren Sie auch zur sehr bescheidenen Über-Seite, die vom unteren Ende der Startseite verlinkt ist. Erfreuen Sie sich an dem CSS-Foo, das verwendet wurde, um diese Über-Seite zu erstellen. Hinweis: PRs, die diese Seite hübscher machen, werden nicht gemergt ;o)

Betrachten wir es zuerst aus der blauen (defensiven) Perspektive. Forken Sie die Goof-Anwendung in Ihr eigenes GitHub-Konto. Die Anwendung finden Sie auf GitHub hier: https://github.com/snyk/goof. Wir müssen unsere Anwendung scannen, um die direkten und indirekten Abhängigkeiten sowie die Schwachstellen in jeder Bibliothek zu verstehen. Navigieren Sie dazu zu https://snyk.io und klicken Sie oben rechts auf der Seite auf "Anmelden" oder "Einloggen" (falls Sie bereits ein Benutzer sind):

Klicken Sie auf die Schaltfläche "Mit Ihrem GitHub-Konto anmelden":

Importieren Sie als nächstes das Goof-Projekt, das Sie gerade geklont haben. Wählen Sie goof aus Ihrer GitHub-Repo-Liste und klicken Sie oben rechts im Fenster auf die Schaltfläche "Projekte importieren".

Wenn das Projekt gescannt wurde, sehen Sie es in Ihrem Dashboard:

Klicken Sie auf den Link package.json, um die Projektseite aufzurufen, die die vollständige Liste der Sicherheitslücken enthält:

Sie können auf die Registerkarten "Probleme" und "Abhängigkeiten" klicken, um weitere Informationen zu den Schwachstellen und deren Behebung sowie zu den Stellen zu erhalten, an denen sie von Ihrer Anwendung eingeführt werden. Sie werden gegen Ende der Auflistung der Schwachstellen eine Directory-Traversal-Schwachstelle im st-Paket bemerken. Schauen wir uns das genauer an.

Ein Directory-Traversal-Angriff (auch Pfad-Traversal genannt) zielt darauf ab, auf Dateien und Verzeichnisse zuzugreifen, die außerhalb des vorgesehenen Ordners gespeichert sind. Durch Manipulation von Dateien mit "Punkt-Punkt-Schrägstrich" (../)-Sequenzen und deren Variationen oder durch Verwendung absoluter Dateipfade ist es möglicherweise möglich, auf beliebige Dateien und Verzeichnisse auf dem Dateisystem zuzugreifen, darunter Anwendungsquellcode, Konfiguration und andere kritische Systemdateien.
Directory-Traversal-Schwachstellen können im Allgemeinen in zwei Typen unterteilt werden:
Das Paket in der Goof-Anwendung, das eine Directory-Traversal-Schwachstelle enthält, die wir ausnutzen werden, ist das st-Paket. Schauen Sie sich die st-Dokumentation an und machen Sie sich mit der Bibliothek vertraut.
Sie sollten jetzt wissen, was Directory Traversal ist, was das st-Paket tut, und können loslegen und die Anwendung hacken – Sie sind wieder im roten Team! Suchen Sie in der Anwendung nach der Stelle, an der das st-Paket verwendet werden könnte, und versuchen Sie, in ein Verzeichnis zu navigieren, auf das Sie keinen Zugriff haben sollten.
Hier sind einige Hinweise, die Ihnen Hinweise geben, falls Sie nicht weiterkommen – versuchen Sie Ihr Bestes, sie nur anzuschauen, nachdem Sie es bereits selbst versucht haben und Hilfe benötigen.
Klicken Sie, um Hinweis 1 zu sehen.
Klicken Sie, um Hinweis 2 zu sehen.
Klicken Sie, um Hinweis 3 zu sehen.
Klicken Sie, um Hinweis 4 zu sehen.