DEF CON CTF 2013 – rememberme

DEFCON CTF 2013 - rememberme - task description

Diese Challenge (rememberme) nennt wieder nur eine Webseite, die wir für einen ersten Eindruck direkt besuchen.

DEFCON CTF 2013 - rememberme - website

Die Seite selbst verlinkt zwei Dateien und bietet einen Login an, den wir jedoch ohne Zugangsdaten nicht nutzen können. Beim Aufruf der Datei “usernames.txt” kann man folgendes erkennen:

DEFCON CTF 2013 - rememberme - usernames.txt

Neben den Benutzernamen fällt hier jedoch besonders die URL mit dem Parameter “accesscode” auf. Der Hash-Wert dieses Parameters entspricht im vorliegenden Fall, der folgenden Berechnung:
Continue reading

DEF CON CTF 2013 – hypeman

DEFCON 2013 CTF - hypeman - task description

Auch bei dieser Challenge (hypeman) wird uns nur eine Webseite genannt, die wir auch sofort aufrufen.

DEFCON 2013 - hypeman - website

Zunächst steht uns nur ein Login zur Verfügung. Da hier jedoch zusätzlich auch ein neuer Benutzer erstellt werden kann, legen wir einen neuen Account an und loggen uns ein.

DEFCON CTF 2013 - hypeman - secrets listing

Andere Benutzer haben hier offensichtlich bereits Eintäge angelegt. Aber ganz oben befindet sich auch ein Schlüssel des Benutzers “admin”. Dieser könnte unser Ziel sein und die Lösung zur Challenge beinhalten. Ein klick auf “show” zeigt uns jedoch einen Fehler.
Continue reading

DEF CON CTF 2013 – babysfirst

DEFCON 2013 CTF - babysfirst - task description

Die Challenge (babysfirst) verweist zunächst nur auf eine Webseite, die wir uns direkt näher ansehen.

DEFCON 2013 CTF - babysfirst - website

Einer der ersten SQL-Injection-Versuche mit ‘ or ‘1’=’1 als Benutzername und Passwort liefert direkt, dieses Ergebnis:

DEFCON 2013 CTF - babysfirst - sql injection

Neben diversen Möglichkeiten, kann hier zum Beispiel eine Blind SQL-Injection durchgeführt werden.
Continue reading

DEF CON CTF 2013 – diehard

DEFCON 2013 CTF - diehard - task description

Die Challenge “diehard” befasst sich mit dem gleichnamigen Film “Stirb Langsam” Dabei soll John McClane eine Bombe entschäfen, indem er Wasser innerhalb zwei verschieden großer Gefäße umfüllt.

Nach dem Verbinden zum Challenge-Server sehen wir zuerst jedoch nur folgende Nachricht:

rup0rt@lambda:~$ nc diehard.shallweplayaga.me 4001
Welcome John McClain...
You are standing at the start of your adventure. You will be tested
on your ability to solve a set of riddles in the minimum amount of
time possible.

As you glance around the room, you realize the problem you seek is
to the north. To the west is a mysterious field.
Exits: n w
>

Offensichtlich müssen wir uns zunächst durch ein Labyrinth im Text-Adventure-Stil arbeiten, bevor wir die “Rätsel” lösen können. Da uns der Weg “im Norden” jedoch bereits vorgegeben ist, navigieren wir promt in diese Richtung.

> n

You go n
You are standing in a long dark hallway. Rays of light flicker off the smooth surfaces around you.
Exits: n s
> n

[...]

You go n
You see a large room with sleek black walls on every side.  The ceiling overhead is smooth and devoid of features. In the center of the room is a small scale that links to a closed door.
A small fountain is gurgling water in the corner. The scale has a small inscription on it.
A red jug is sitting in the room.
A blue jug is sitting in the room.
A fountain is sitting in the room.
A scale is sitting in the room.

Continue reading

DEF CON CTF 2013 – Grandprix

The grandprix challenges requires us to connect to a server where we can play an ascii game. According to the assignment text, we are advised to avoid the zebras.

Let’s check out the game first using netcat:

$ nc grandprix.shallweplayaga.me 2038
nc: using stream socket
Use 'l' and 'r' to move. Don't crash.
Press return to start
 |-----|
 |     |
 |     |
 |     |
 |     |
 |     |
 |     |
 |     |
 |     |
 |  u  |
 |-----|

The games starts with an empty field. Obviously, our position is indicated by an u. We fiddle around a little to learn how the game works. Sending an r moves the player one step right, a l one left and a s or an empty line moves the player straight forward.

 r
 |-----|
 |     |
 |     |
 |     |
 |     |
 |     |
 |     |
 |     |
 |     |
 |   u |
 |-----|

The more we move along, the more obstacles appear. A T marks a tree and the Zebras we were warned about are indicated by a Z.
Continue reading

Defcon 20 CTF Prequals 2012 –
Forensics 300

Auch bei dieser Challenge (Forensics 300) wird uns eine Datei zum Download bereit gestellt und es heißt wieder “Get the Key!“. Eine erste Untersuchung der Daten mit dem Werkzeug “file”, um den Dateityp in Erfahrung zu bringen, liefert uns jedoch nur:

rup0rt@lambda:~/f300$ file for300-47106ef450c4d70ae95212b93f11d05d
for300-47106ef450c4d70ae95212b93f11d05d: data

Wenn selbst “file” den Dateityp nicht erkennen kann, muss es sich entweder um ein proprietäres Format oder einen sehr seltenen Dateityp handeln. Uns bleibt hier nichts anderes übrig, als uns die Datei manuell anzusehen.

rup0rt@lambda:~/f300$ xxd for300-47106ef450c4d70ae95212b93f11d05d | head
0000000: 5ea3 a417 0000 0020 0000 0000 7369 676e  ^...... ....sign
0000010: 6174 7572 653d 7772 676e 6430 385f 646c  ature=wrgnd08_dl
0000020: 6f62 5f64 6972 3831 3500 0000 5ea3 a417  ob_dir815...^...
0000030: 0000 0024 0038 e020 70e0 30e2 5e2a ff77  ...$.8. p.0.^*.w
0000040: 7eef 8466 08c3 9b2b 6465 763d 2f64 6576  ~..f...+dev=/dev
0000050: 2f6d 7464 626c 6f63 6b2f 3200 7479 7065  /mtdblock/2.type
0000060: 3d66 6972 6d77 6172 6500 0000 5d00 0000  =firmware...]...
0000070: 02b4 e72d 0000 0000 0000 4e03 fc00 8c66  ...-......N....f
0000080: f858 2fa1 b8d4 a5bf 319b 56ad 7e8f ad62  .X/.....1.V.~..b
0000090: 75bc 8a42 ed6b c347 8461 d9f2 5faf e5df  u..B.k.G.a.._...

Aha! Es handelt sich hier scheinbar um ein Firmware-Image. Vermutlich, da die Zeichenkette enthalten ist, um das eines “DIR-815“-Routers der Firma DLink. Firmware-Images sind meist Sammlungen aus weiteren Daten beziehungsweise Dateien, wie Boot-Images, gepackte Dateisysteme oder Konfigurationsdaten. Um solche Daten innerhalb eines Images ausfindig zu machen, existiert das Werkzeug “binwalk“, das speziell auf die Analyse von Firmwares ausgelegt ist.
Continue reading

Defcon 20 CTF Prequals 2012 –
Grab Bag 400

Bei der “Grab Bag 400) – Challenge wird uns ein Webserver genannt und folgende Frage gestellt:

“What is Jeff Moss’ checking account balance?”

Wir sollen demnach den Kontostand von “Jeff Moss”, dem Defcon-Gründer, in Erfahrung bringen. Zuerst besuchen wir also die Webseite und verschaffen uns einen Überblick.

Defcon 20 CTF 2012 - Grab Bag 400 - website

Es handelt sich um die Webseite der “Bank of America”, die uns unter der Domain “boabank.com” vorgestellt wird. Nach einem kurzen Überfliegen der Links (von denen es nicht viele gibt), sticht schon das Suchfeld im rechten Bereich der Webseite ins Auge.

Hier kann man nach BoaBank-Filialen in seiner Nähe durch Eingabe der Postleitzahl suchen. Bereits die Eingabe einer Zeichenkette, die nicht aus Zahlen besteht, führt schon zu der Fehlermeldung:

“ERROR: column … does not exist Position: 55”

Dabei handelt es sich um eine Fehlermeldung des Datenbanksystems PostgreSQL. Dass der Fehler ohne die Eingabe von (einfachen oder doppelten) Anführungszeichen ausgelöst wird, lässt vermuten, dass der Wert der Postleitzahl ebenfalls ohne Anführungszeichen direkt an die Datenbank-Abfrage weitergegeben wird. Eine mögliche Anfrage könnte daher wie folgt aussehen:

SELECT ... FROM ... WHERE zip = $_POST['zip'];

Um diese Vermutung zu überprüfen und beispielsweise alle Filialen beliebiger Postleitzahl auszugeben, trage ich in das Suchfeld “1234 OR 1=1” ein, und erhalte folgendes Ergebnis:
Continue reading

Defcon 20 CTF Prequals 2012 –
Grab Bag 300

Bei dieser Challenge (Grab Bag 300) wird uns nur eine IP-Adresse und ein Port genannt. Weitere Informationen, die uns auf eine Lösung hinweisen, erhalten wir nicht. Die erste Verbindung zu dem angegebenen System mit “netcat” liefert uns folgende Ausgabe:

Defcon 20 CTF 2012 - Grab Bag 300 - skimmer game

Der Server stellt sich selbst als “ATM Skimmer” vor. Solche Geräte werden an Geldautomaten angebracht um die Magnetkarte sowie PIN von Kunden zu kopieren bzw. zu speichern um später damit selbst Geld von deren Konten abheben zu können. Continue reading

Defcon 20 CTF Prequals 2012 –
Grab Bag 200

Bei dieser Challenge (Grab Bag 200) wird uns eine Datei zur Verfügung gestellt und nicht mehr das Ziel “Get the key!” genannt. Die Festellung, dass es sich bei Datei um ein Zip-Archiv handelt, habe ich bereits voraus gegriffen und die Datei entsprechend umbenannt. 😉

Beginnen wir also mit der ersten Untersuchung der Daten.

rup0rt@lambda:~/grab200$ unzip grab200-95a9797075e36edfe649a0141b7cf2b2.zip
Archive:  grab200-95a9797075e36edfe649a0141b7cf2b2.zip
  inflating: 115e0ba3c3d72647fcb9a53ae90e47a6.jpg  
   creating: __MACOSX/
  inflating: __MACOSX/._115e0ba3c3d72647fcb9a53ae90e47a6.jpg  

rup0rt@lambda:~/grab200$ file 115e0ba3c3d72647fcb9a53ae90e47a6.jpg
115e0ba3c3d72647fcb9a53ae90e47a6.jpg: JPEG image data, JFIF standard 1.01

rup0rt@lambda:~/grab200$ file __MACOSX/._115e0ba3c3d72647fcb9a53ae90e47a6.jpg
__MACOSX/._115e0ba3c3d72647fcb9a53ae90e47a6.jpg: AppleDouble encoded Macintosh file

Das Archiv beinhaltet ein Bild im Jpeg-Format und eine versteckte Datei, die vom Namen her mit dem Bild assoziiert zu sein scheint. Vom bloßen Hinsehen scheinen wir bei diesem Spassbild die Lösung der Challenge jedenfalls nicht ablesen zu können.

Defcon 20 CTF 2012 - Grab Bag 200 - forensic image

Auch eine gezielte Suche nach dem Verzeichnis “__MACOSX” und dem Typ “AppelDouble encoded Macintosh file” bringt uns nur zu der Erkenntnis, dass es sich hierbei um einen sogenannten “resource fork” handelt, der bei Mac OS beim Packen von Archiven üblich ist. Sehen wir uns nun die beiden Dateien also etwas genauer an. Continue reading