Bei der X94 – Challenge werden wir aufgefordert, Zugriff auf den eingeschränkten Bereich zu erlangen. Dazu wird uns eine IP-Adresse sowie Port genannt. Um einen Überblick zu erhalten, verbinden wir uns zunächst zu dem System:
rup0rt@lambda:~$ nc 95.170.83.28 3002
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
_ _ 94 _________ ______ ______ _ _ _____ ______ ______
\ \ / / | | | | | \ | | | | | | | | | | | | | | \ \ | |
>|--|< | | | | | | | |__| | | | | |--| | | | | | | | | |----
/_/ \_\ |_| |_| |_| |_| |_| |_|____ |_| |_| _|_|_ |_| |_| |_|____
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Really Wanna Trade with us ? yes/no
yes
Enter Username :
1338-offbyone
Welcome 1338-offbyone
Enter your Command :
[1] balance
[2] exchange
[3] transfert
[4] restricted area
4
This Area is restrcited for accounts with 5000usd+
Wir werden hier also von der sogenannten “X94-Maschine” begrüßt, die uns zunächst fragt, ob wir wirklich Handel betreiben wollen – was wir natürlich bejahen. Anschließend wird der Benutzername angefragt, den wir beliebig wählen können. Im Hauptmenü angelangt, wird die Option “restricted area” direkt angeboten, liefert uns jedoch bei Auswahl die Mitteilung, dass der Bereich nur für Konten mit mindestens 5000 US-Dollar Verfügbar ist.
Das Ziel der Challenge ist somit erkannt: wir müssen über das System irgendwie erreichen, dass unserem Konto 5000 US-Dollar gutgeschrieben werden.
Dazu sehen wir uns zunächst die weiteren drei Optionen des Hauptmenüs an.
[1] balance
[2] exchange
[3] transfert
[4] restricted area
1
Your Balance : 100 USD , 100 EUR , 100 GBP
Die Auswahl von “balance” zeigt uns den derzeitigen Kontostand an. Hier sehen wir auch, dass wir zur Zeit nur 100 Dollar besitzen.
[1] balance
[2] exchange
[3] transfert
[4] restricted area
2
Enter Destination currency
EUR
Enter Source currency
USD
Enter Amount
100
Your Balance : 0 USD , 176.92 EUR , 100 GBP
Mit der Option “exchange” lassen sich die drei vorhandenen Währungen (USD, EUR, GBP) untereinander zu einem Wechselkurs tauschen.
[1] balance
[2] exchange
[3] transfert
[4] restricted area
3
Enter Amount
100
Enter Reciept Name
admin
Error performing transfer
Der dritte Menüpunkt “transfert”, der uns in der Theorie das Überweisen von Beträgen auf andere Konten ermöglichen sollte, funktioniert hier nicht bzw. wurde deaktiviert und liefert bei jedem Aufruf nur einen Fehler.
Wie gehen wir nun vor um uns die 5000 US-Dollar zu verschaffen? Die Vermutung liegt nahe, dass irgendeine Überprüfung der Benutzereingaben im System nicht korrekt erfolgt. Da nicht viele Möglichkeiten offen stehen, wenden wir uns dem “exchange” Menü zum Wechseln der Währungen zu.
[1] balance [2] exchange [3] transfert [4] restricted area 2 Enter Destination currency USD Enter Source currency EUR Enter Amount 101 you dont have such amount
Bei dem Versuch uns mehr Geld zu Wechseln, als wir tätsächlich besitzen, passt das System auf und weist uns auf unseren “Fehler” hin.
[1] balance [2] exchange [3] transfert [4] restricted area 2 Enter Destination currency EUR Enter Source currency USD Enter Amount -1 Your Balance : 101 USD , 99.23 EUR , 100 GBP
Aha! Negative Zahlen werden vom System also ebenfalls akzeptiert und der Wechsel der Währung korrekt in die entsprechende Richtung durchgeführt. Wie sieht es hier mit der Validierung der Benutzereingaben aus?
[1] balance [2] exchange [3] transfert [4] restricted area 2 Enter Destination currency EUR Enter Source currency USD Enter Amount -5000 Your Balance : 5101 USD , -3746.92 EUR , 100 GBP
Die Überprüfung unseres Guthabens scheitert und uns werden tatsächlich 5000 US-Dollar gut geschrieben. Nun sollte uns der Zugriff auf den eingeschränkten Bereich gestattet werden!
[1] balance
[2] exchange
[3] transfert
[4] restricted area
4
FLAG{54f882f08e3baab9d21e5f2aec4d85646a718181}
Und auch das ist hier erfolgreich, der Schlüssel zur Challenge wird offenbart und wir können – im Vergleich zu anderen Aufgaben dieses CTFs – sehr sehr leicht verdiente 250 Punkte erringen.
Die Lösung lautet “54f882f08e3baab9d21e5f2aec4d85646a718181“.