Zum Hauptinhalt springen

Anleitungen

Installation

Damit das Spiel auf jenem Computer spielbar ist, müssen zuerst gewisse Programme auf dem System vorhanden sein und manche Einstellungen konfiguriert werden.

Zu diesen Programmen gehören Docker und bei Windows noch das WSL. Unten wird beim jeweiligen Tab für Windows, MacOS und Linux erklärt, wie man die benötigten Dinge installiert.

Für Windows muss man sich zuerst das Windows Subsystem for Linux installieren, da Docker dieses auf dem System benötigt, um laufen zu können. Wie dies gemacht wird, ist in der offiziellen Dokumentation von Microsoft ersichtlich.
Dabei muss man beachten, dass man die Version 2 installiert, da die Version 1 nicht von Docker verwendet werden kann.

Nachdem das WSL erfolgreich installiert wurde, kann man Docker Desktop installieren. Für dies gibt es auch eine offizielle Anleitung von Docker. Diese soll wieder befolgt werden. Sobald alles installiert ist, können die weiteren Anleitungen (unten) für das Spiel befolgt werden, um fortzufahren.

Bruteforce

Aufgabenstellung

Das Ziel ist, die Flagge zu finden. Diese sieht so aus: flag{bruteforce_challenge} Um an die Flagge heranzukommen, muss ein Pin zwischen 0 und 9999 gefunden werden. Deine Aufgabe ist es dies zu tun, indem du eine Bruteforce-Methode anwendest.

Das Level ist überwunden, wenn folgende Flagge gefunden wurde:
flag{bruteforce_challenge}

Zusätzliche Informationen:

  • Es wurde OpenSSL zum Verschlüsseln der Flagge verwendet.
  • aes-256-cbc wurde als Methode genommen.
  • Der Pin muss nicht unbedingt vierstellig sein.
  • Das zu entschlüsselnde File befindet sich im Filesystem des Containers unter /home/root
  • Es wird nicht BASH im Container verwendet, sondern die Alpine Shell.
  • Vergiss nicht Rechte an auszuführende Dateien auszuteilen! (chmod +x meineDatei.bsp)

Um zu starten:

docker run -it --name ash mnaray/bruteforce:latest

Hilfestellungen

1. Hinweis

Bei der Verwendung vom openssl-Befehl ist zu beachten, dass die Ver- und Entschlüsselung auf einer binären Ebene geschieht. Damit du das Resultat dann auch lesen kannst, muss -a im Befehl verwendet werden. Dies en(t)kodiert die Ausgabe zu Base-64.

2. Hinweis

Schau auf den Namen dieser Aufgabenstellung. Was ist der Titel? Google was es ist. Vergiss nicht, dass der geheime Pin sich zwischen 0 und 9999 befindet.

3. Hinweis

Am schnellsten geht es, ein Script zu schreiben, welches die Arbeit vom Ausprobieren aller Optionen für dich übernimmt. Es muss aber nicht unbedingt ein Script sein, es gibt sonst auch noch viele Bibliotheken und Tools, mit denen so etwas gemacht werden kann.

Hier ist es einfacher ein kurzes Script zu schreiben, da es nur 10000 mögliche Kombinationen für den Code gibt. In einer Situation, in der es vielleicht sogar milliarden von Optionen gibt, ist z.B. ein Bruteforcing-Tool empfehlenswert.

SQL-Injection

Aufgabenstellung

Das Ziel ist, die Flagge zu finden. Diese sieht so aus: flag{sql_injection_challenge} Um an die Flagge heranzukommen muss das Login via einer SQL-Injection umgangen werden.

Das Level ist überwunden, wenn folgende Flagge gefunden wurde: flag{sql_injection_challenge}

Zusätzliche Informationen:

  • Es darf nicht mit einer direkten auf die Datenbank zugegriffen werden.
  • Du sollst dich als "admin" einloggen.
  • Das Passwort soll nicht geraten werden. Es gilt das Login zu umgehen.
  • Es laufen zwei Container in einem Netzwerk; die Datenbank und die Node-Laufzeit (Webserver)
  • Die Container müssen mit docker-compose gestartet werden.

Um zu starten:

Erstelle eine Datei mit dem Namen docker-compose.yaml.
In diese Datei sollst du folgenden Inhalt einfügen:

version: '3.8'

services:
database:
image: mnaray/sql_injection_db:latest
container_name: usersdb
restart: always
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=true

server:
image: mnaray/sql_injection_server:latest
container_name: server
restart: always
depends_on:
- database
links:
- database
ports:
- "80:80"

Sobald du den Inhalt eingefügt hast, navigiere mit der Kommandozeile an den Ort der Datei.
Dort sollst du folgenden Befehl ausführen:

docker-compose up -d

Es kann ein wenig dauern bis alles ausgeführt wurde, wenn du die Dockerimages noch nicht auf deinem Gerät hast. Das ist nicht schlimm, es wird alles automatisch heruntergeladen und installiert, wenn der Inhalt von der docker-compose-Datei stimmt.

Wenn alles vollständig hochgefahren ist, kannst du nun einen beliebigen Browser öffnen und http://localhost als URL eingeben. Es soll sich eine einfache Loginseite öffnen, welche der Startpunkt der Challenge ist. Dort kannst du dann versuchen, das Login zu umgehen und dich als "admin" anzumelden.

Hilfestellungen

1. Hinweis

Weisst du was SQL-Injection ist? Falls nicht, dann sollst du dich kurz informieren und versuchen die gefundenen Informationen im nächsten Schritt anzuwenden.

Schreibe dir eine Query auf, die möglicherweise verwendet wird, um die Datenbank nach den Logindaten abzufragen. Wie kannst du nun diese Query mit (zum Beispiel) den Eingabefeldern manipulieren?

2. Hinweis

Die eigentliche Injection findet hier im Passwortfeld statt. Der Nutzername soll "admin" sein.

3. Hinweis

Die Query im für das Loginfenster sieht so aus:

SELECT username, password FROM users
WHERE username = '[Eingabe Nutzername]'
HAVING password = '[Eingabe Passwort]';