ForbiddenBITS CTF 2013 – X94

ForbiddenBITS CTF 2013 - X94 - task description

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“.

Leave a Reply

Your email address will not be published. Required fields are marked *