From ac80dd4368e5f4b455424bde335d4c69166e3cd3 Mon Sep 17 00:00:00 2001 From: Thomas Smits Date: Thu, 14 Dec 2023 07:14:50 +0100 Subject: [PATCH] Upload files to "/" --- gruyere-cookies.md | 18 ++++++++++++++++++ gruyere-directory.md | 18 ++++++++++++++++++ gruyere-persistent-xss.md | 18 ++++++++++++++++++ gruyere-reflected-xss.md | 16 ++++++++++++++++ gruyere.png | Bin 0 -> 27877 bytes 5 files changed, 70 insertions(+) create mode 100644 gruyere-cookies.md create mode 100644 gruyere-directory.md create mode 100644 gruyere-persistent-xss.md create mode 100644 gruyere-reflected-xss.md create mode 100644 gruyere.png diff --git a/gruyere-cookies.md b/gruyere-cookies.md new file mode 100644 index 0000000..63c66c4 --- /dev/null +++ b/gruyere-cookies.md @@ -0,0 +1,18 @@ +# Gruyere: Cookie-Manipulation + +## Ziel + +Ziel ist es, die Cookies in der Gruyere-Anwendung so zu verändern, dass Sie zusätzliche Rechte in der Anwendung bekommen. + +## Voraussetzungen + + * Webbrowser (z.B. Chrome oder Firefox) + * Plug-in, das den Zugriff auf die Cookies erlaubt (z.B. [Cookie Quick Manager](https://addons.mozilla.org/en-US/firefox/addon/cookie-quick-manager/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search)) + * Gruyere ist verfügbar (siehe [Anleitung](vorbereitung.md)) + +## Übung + + 1. Melden Sie sich an der Gruyere-Anwendung an. + 2. Schauen Sie sich die Cookies an, die von Gruyere erzeugt werden. Es gibt dort einen leeren Bereich im Cookie (`||`) für zusätzliche Informationen über die Berechtigungen des Benutzers. + 3. Versuchen Sie sich zusätzliche Berechtigungen zu erschleichen und Administrator zu werden (`admin` genannt in Gruyere). + 4. Tipp: Es könnte Hashing eingesetzt werden, um das Cookie vor Veränderungen zu schützen. Versuchen Sie dies zu umgehen. diff --git a/gruyere-directory.md b/gruyere-directory.md new file mode 100644 index 0000000..f78620d --- /dev/null +++ b/gruyere-directory.md @@ -0,0 +1,18 @@ +# Gruyere: Directory-Traversal + +## Ziel + +Ziel ist es, eine versteckte Datei (namens `secret.txt`) auf dem Web-Server zu finden und auszulesen. + +Um Zugriff auf die Datei zu bekommen, werden Sie einen Directory-Traversal-Angeiff durchführen, d.h. aus der von der Anwendung vorgesehenen Directory-Struktur ausbrechen und Dateien lesen, die sich außerhalb des Dokumentenverzeichnis des Webservers befinden. + +## Voraussetzungen + + * Webbrowser (z.B. Chrome oder Firefox) + * Gruyere ist verfügbar (siehe [Anleitung](vorbereitung.md)) + +## Übung + + * Die Web-Anwendung hat eine Upload-Funktionalität (`Upload`). Nachdem man eine Datei hochgeladen hat, kann man sie unter der URL `/benutzername/dateiname` wieder herunterladen. + * Versuchen Sie den Upload-Mechanismus zu verwenden, um die geheime Datei `secret.txt` vom Webserver zu laden. + * Beachten Sie, dass man einen Slash (`/`) auch als `%2F` in der URL darstellen. Dies hält Ihren Browser möglicherweise davon ab, die URL zu normalisieren, bevor er sie zum Server sendet. diff --git a/gruyere-persistent-xss.md b/gruyere-persistent-xss.md new file mode 100644 index 0000000..428d6ec --- /dev/null +++ b/gruyere-persistent-xss.md @@ -0,0 +1,18 @@ +# Persistent XSS + +## Ziel + +Ziel ist es, einen persistenten Cross Site Scripting-Angriff gegen eine Webanwendung durchzuführen. Dies bedeutet, dass das bösartige Skript auf dem Server gespeichert wird und an alle Benutzer der Seite ausgeliefert wird. + +## Voraussetzungen + + * Webbrowser (z.B. Chrome oder Firefox) + * Texteditor + * Gruyere ist verfügbar (siehe [Anleitung](vorbereitung.md)) + +## Übung + + 1. Erzeugen Sie eine HTML-Seite auf Ihrem Rechner, die JavaScript-Code enthält, um den Benutzer anzugreifen. Sie können z.2. ein Cookie stehlen oder eine Dialogbox anzeigen. + 3. Suchen Sie nach Möglichkeiten, diese Datei in Gruyere hochzuladen. Generell gibt es zwei Stellen zum Upload: `New Snippets` und `Upload`. + 3. Versuchen Sie, Ihre Seite in den Bereich "New Snippets" zu kopieren. Sie werden merken, dass die Eingaben gefiltert werden. Versuchen Sie Ihre Datei trotzdem hineinzukopieren. + 4. Versuchen Sie, Ihre Datei mit der "Upload"-Funktion hochzuladen. diff --git a/gruyere-reflected-xss.md b/gruyere-reflected-xss.md new file mode 100644 index 0000000..189d1f8 --- /dev/null +++ b/gruyere-reflected-xss.md @@ -0,0 +1,16 @@ +# Reflected XSS + +## Ziel + +Ziel ist es, einen reflected Cross Site Scripting-Angriff gegen eine Webanwendung durchzuführen. Dies bedeutet, dass das bösartige Skript _nicht_ auf dem Server gespeichert wird, sondern über eine URL an das Opfer gesendet wird. + +## Voraussetzungen + + * Webbrowser (z.B. Chrome oder Firefox) + * Gruyere ist verfügbar (siehe [Anleitung](vorbereitung.md)) + +## Übung + + 1. Gehen Sie auf eine beliebige Seite der Webanwendung, z.B. `My Snippets`. + 2. Modifizieren Sie die URL so, dass sie ungültig wird und schauen Sie sich die Fehlermeldung genau an. + 3. Verwenden Sie die oben gesammelten Informationen, um eine URL für einen _reflected XSS-Angriff_ zu konstruieren. diff --git a/gruyere.png b/gruyere.png new file mode 100644 index 0000000000000000000000000000000000000000..c2476cc4d19093e79f28571ceeae835fc0dc47d9 GIT binary patch literal 27877 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 G$o~N|dXY*1 literal 0 HcmV?d00001