2.9 KiB
Hidden Flag
Willkommen zum Write-up für Hidden Flag. Dies ist eine "Web"-Challenge, die sich auf Information Disclosure (Informationspreisgabe) und Predictable Resource Location (Vorhersehbare Ressourcenpfade) konzentriert.
In dieser Challenge ist es unsere Aufgabe, eine Datei namens flag.txt zu finden und herunterzuladen, die irgendwo auf der CTF-Plattform versteckt ist.
1. Erste Erkundung
Die Challenge-Beschreibung gibt uns ein sehr einfaches Ziel:
"Kannst du die versteckte flag.txt Datei auf dieser Seite herunterladen?"
Im Gegensatz zu vielen anderen Challenges erhalten wir keinen direkten Link oder ein Quellcode-Archiv. Wir müssen die CTF-Plattform selbst nach Hinweisen durchsuchen, wo Dateien gespeichert sind.
2. Analyse der Plattform
Wenn wir uns andere Challenges auf der Plattform ansehen (wie SmashMe), stellen wir fest, dass sie herunterladbare Dateien bereitstellen. Wenn wir die Download-Links für diese Challenges untersuchen, sehen wir ein Muster in den URLs:
https://ctf.hackimpott.de/files/1769295971401-smashMe_.tar.xz
Die Plattform scheint alle challenge-bezogenen Dateien in einem öffentlichen Verzeichnis unter /files/ zu speichern.
3. Die Schwachstelle: Vorhersehbare Ressourcenpfade
Die Schwachstelle hier ist, dass der Server sensible Dateien (wie die Flagge) im selben Verzeichnis wie öffentliche Assets speichert und dieses Verzeichnis direkt für Benutzer zugänglich ist. Während die anderen Dateinamen zufällig aussehen mögen (z.B. 1769295971401-...), wissen wir aus der Beschreibung, dass die Datei, die wir suchen, genau flag.txt heißt.
Wenn der Server keine ordnungsgemäßen Zugriffskontrollen für dieses Verzeichnis hat, können wir den Pfad zur Datei einfach erraten.
4. Ausnutzung
Um die Challenge zu lösen, nehmen wir eine bekannte funktionierende Datei-URL und ersetzen den Dateinamen durch unser Ziel:
- Original-URL:
https://ctf.hackimpott.de/files/1769295971401-smashMe_.tar.xz - Modifizierte URL:
https://ctf.hackimpott.de/files/flag.txt
Indem wir in unserem Browser zur modifizierten URL navigieren (oder curl verwenden), erlaubt uns der Server, die Datei herunterzuladen, wodurch ihr Inhalt enthüllt wird.
5. Die Lösung
Das Öffnen der heruntergeladenen flag.txt enthüllt die Flagge:
Flag: {flag: well_done_little_pwnie_:)}
Gelernte Lektionen
Diese Challenge zeigt, warum es wichtig ist, statische Dateiverzeichnisse ordnungsgemäß zu sichern.
- Zugriffskontrolle: Dateien, die nicht öffentlich sein sollen, sollten niemals in einem öffentlich zugänglichen Verzeichnis gespeichert werden.
- Obfuscation ist keine Sicherheit: Selbst wenn Sie lange, zufällige Dateinamen für einige Dateien verwenden, schützt dies andere Dateien im selben Verzeichnis nicht, wenn deren Namen vorhersehbar sind (wie
flag.txt,config.phpoderbackup.zip).
Viel Spaß beim Jagen!