commit ac80dd4368e5f4b455424bde335d4c69166e3cd3 Author: Thomas Smits Date: Thu Dec 14 07:14:50 2023 +0100 Upload files to "/" 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 0000000..c2476cc Binary files /dev/null and b/gruyere.png differ