Hackover CTF 2015 – securelogin

This writeup describes the solution for the securelogin challenge in Hackover CTF 2015 held by Chaos Computer Club Hamburg.

Hackover CTF 2015 - securelogin - task description

We have to get the flag from the website, so lets check it out:

Hackover CTF 2015 - securelogin - website view

Just a simple website. We can login with any data. But when visiting the “secret” tab, this is the result:

Hackover CTF 2015 - securelogin - login view

No access – no flag :-(. Lets check the cookies.

Hackover CTF 2015 - securelogin - cookie data

There is a “data” cookie. It looks like base64 so we’re going to decode it and look at its content:

ruport@zentaur:~$ echo "dXNlcm5hbWU9cnVwMHJ0LWEyZjFmY2U4ZmM5NjAxMDIwYzRhYjA5MzJjYmM1MmJkZjU3YTQzYmE4MzAyNmI4NmZmNjU2YzQzNmZkOWQ4NTk=" | base64 -d
username=rup0rt-a2f1fce8fc9601020c4ab0932cbc52bdf57a43ba83026b86ff656c436fd9d859

The cookie data contains my username and a sha256 hash (which is not the hashed username :D). It must be some message authentication code (MAC). When knowing and controlling a plaintext and looking for a valid MAC, you will always have to think on hash length extension attacks.
Continue reading

Share this post...Share on Google+Share on LinkedInShare on RedditTweet about this on TwitterShare on Facebook

Hackover CTF 2015 – messagecenter

This writeup describes the solution for the messagecenter challenge in Hackover CTF 2015 held by Chaos Computer Club Hamburg.

Hackover CTF 2015 - Messagecenter - Task description

The task was … to find the flag …  as usual :D. So lets look at the website.

Hackover CTF 2015 - Messagecenter - Website

So we get a simple website with login fields and some information (demo login data, more username, etc.). When logging in using the “demo” account and “remember me” option we get this view:
Continue reading

Share this post...Share on Google+Share on LinkedInShare on RedditTweet about this on TwitterShare on Facebook

Hackover CTF 2015 – easy-shell

This writeup describes the solution for the easy-shell challenge in Hackover CTF 2015 held by Chaos Computer Club Hamburg.

Hackover CTF 2015 - easy-shell - Task description

Lets first check what the binary does when executing.

ruport@zentaur:~/hackover2015$ ./easy_shell

        .-"; ! ;"-.
      .'!  : | :  !`.
     /\  ! : ! : !  /\
    /\ |  ! :|: !  | /\
   (  \ \ ; :!: ; / /  )
  ( `. \ | !:|:! | / .' )
  (`. \ \ \!:|:!/ / / .')
   \ `.`.\ |!|! |/,'.' /
    `._`.\\\!!!// .'_.'
       `.`.\\|//.'.'
        |`._`n'_.'| 
        "----^----">>

nom nom, shell> rup0rt

Some nice ascii art and data reading without output. Because this is a pwn challenge lets send much data in GDB and check the result.

nom nom, shell> AAAAAAAAAAA [300 * "A"]

Program received signal SIGSEGV, Segmentation fault.
0x41414141 in ?? ()

Wow, we already got EIP control – that will literally be an easy-shell :-). Lets check where to direct the EIP into a controlled code segment.
Continue reading

Share this post...Share on Google+Share on LinkedInShare on RedditTweet about this on TwitterShare on Facebook

Hackover CTF 2015 – easy-math

This writeup describes the solution for the easy-math challenge in Hackover CTF 2015 held by Chaos Computer Club Hamburg.

The task describes some basic arithmetics to warm up:

Hackover CTF 2015 - easy-math - task description

This file was published: easy-math.tar.gz. It is a 32bit ELF executable. Running the file shows this output:

ruport@zentaur:~/hackover2015$ ./easy_math
Warmup: sh0w m3 h0w 1337 y0u 4r3> rup0rt

It reads some data and does stuff with it. I gonna try GDB to have a detailed look in the operations.
So lets set a breakpoint after the read() functions and single step (si).

(gdb) b *0x0804855d
Breakpoint 1 at 0x804855d
(gdb) display /i $eip
(gdb) run
Starting program: /home/ruport/hackover2015/easy_math 
Warmup: sh0w m3 h0w 1337 y0u 4r3> AAAABBBBCCCC

(gdb) CC
Undefined command: "CC". Try "help".
1: x/i $eip
=> 0x804855d <main+153>:	add    esp,0x10

We already recognize that the binary only takes 10 bytes of input because, 2 bytes of our input (CC) is already passed back to GDB. Then the program does some compares. One of them is very interesting because it checks our input data:
Continue reading

Share this post...Share on Google+Share on LinkedInShare on RedditTweet about this on TwitterShare on Facebook

Hack.Lu CTF 2014 – ImageUpload

Hack.Lu CTF 2014 - ImageUpload - Task description

Diese Challenge (ImageUpload) erzählt uns von einer Website, auf der man Bilder hochladen kann um dem Scheriff bei der Verbrechenjagd zu unterstützen. Als erstes sehen wir uns diese Webseite etwas genauer an.

Hack.Lu CTF 2014 - ImageUpload - Website

Die Seite ist sehr klein und übersichtlich. Es gibt eine Möglichkeit sich anzumelden, mit der wir – wegen Abfrage von Benutzernamen und Password – zunächst nichts anfangen können. Des Weiteren lassen sich offensichtlich Bilder hochladen. Diese Möglichkeit nutzen wir für ein Testbild.

Hack.Lu CTF 2014 - ImageUpload - Picture upload

Nach dem Hochladen sehen wir das Bild auf der Webseite. Zusätzlich wurden am unteren Ende des Bildes Daten angefügt. Bei diesen Daten handelt es sich vermutlich um Exchangeable Image File Format (EXIF) Daten, die aus dem Bild selbst ausgelesen wurden. Da mein Bild keine Daten enthielt, sind die Felder leer.

Continue reading

Share this post...Share on Google+Share on LinkedInShare on RedditTweet about this on TwitterShare on Facebook

Android and self-compiled drivers (ASUS MeMo FHD 10 + HUAWEI K3715 UMTS Stick)

Recently I bought my first android tablet – an ASUS MeMo FHD 10 (ME302C)! This one:

Asus MeMo Pad FHD 10

It is pretty cool and much fun working with this device – as long as you have got an internet connection. ;-) But because I thought there would be free open WLAN spots all over the world and – in case of emergency – I could use my UMTS stick, I only bought the cheap wifi-only version of the tablet (~200 EUR).

So today I wanted to prepare the device to be used with my UMTS stick. It’s branded by “Vodafone” and uses a HUAWEI K3715 chipset. This one:

vodafone_umts_stick_huawei_k3715     vodafone_umts_stick_huawei_k3715_details

Remembering my experiences using this stick with linux I though it would be an easy job. So I got my USB On-The-Go (OTG) cable to connected the stick with the pad…

Continue reading

Share this post...Share on Google+Share on LinkedInShare on RedditTweet about this on TwitterShare on Facebook

CodeGate CTF 2014 – 120

CodeGate CTF 2014 - 120 - Task description

Die Challenge “120” nennt uns ohne weitere Hinweise nur eine Webseite und deren zeigt uns deren PHP-Quellcode. Zu Beginn rufen wir die Webseite direkt auf:

CodeGate CTF 2014 - 120 - Limited tries website

Wir erkennen eine Passwortabfrage sowie einen Zähler, der bei 120 beginnt und mit jedem Webseitenaufruf um Eins herunter zählt. Des Weiteren ist ein Link “Auth” sichtbar, der zu dieser Seite führt:

CodeGate CTF 2014 - 120 - Authentication website

Wir sehen eine weitere Seite mit Passwortabfrage, in der jedoch bereits ein erster Hinweis enthalten ist, nämlich, dass das nur Kleinbuchstaben enthält. Unser Ziel scheint es also zu sein, an das Passwort zu gelangen.

Als Nächstes sehen wir uns den Quellcode der Webseite an um deren Funktionalität zu verinnerlichen. Auszugsweise tut die Webseite folgendes:
Continue reading

Share this post...Share on Google+Share on LinkedInShare on RedditTweet about this on TwitterShare on Facebook

CodeGate CTF 2014 – WeirdShark

CodeGate CTF 2014 - WeirdShark - Task description

Die “WeirdShark”-Challenge liefert uns neben den gezeigten Bildern noch eine Pcap-Datei. Diese sehen wirs auch direkt einmal mit WireShark an – dem Werkzeug von dem der Name der Challenge offensichtlich abgeleitet worden ist.

CodeGate CTF 2014 - Weirdshark - Pcapng Error

Leider gibt es ein Problem beim Öffnen der Datei zu geben – sie scheint beschädigt zu sein. Für solche Fälle gibt es ein großartiges Werkzeug, namens pcapfix ;-). Die Anwendung von pcapfix auf die Pcap-Datei liefert diese Ausgabe:

pcapfix 1.0.1 (c) 2012-2013 Robert Krause

[*] Reading from file: weird_shark.pcap
[*] Writing to file: fixed_weird_shark.pcap
[+] This is a PCAPNG file.
[-] Enhanced packet data exceeds packet length (4270407998 > 64) ==> CORRECTED.
[*] Progress:  20.11 %
[*] Progress:  40.03 %
[*] Progress:  60.02 %
[*] Progress:  80.05 %
[+] SUCCESS: 1 Corruption(s) fixed!

Der Fehler wurde offensichtlich gefunden und konnte behoben werden! Wir öffnen die reparierte Datei nochmals mit Wireshark.
Continue reading

Share this post...Share on Google+Share on LinkedInShare on RedditTweet about this on TwitterShare on Facebook

CodeGate CTF 2014 – Web Proxy

CodeGate CTF 2014 - Web Proxy - Task description

Die Challenge “Web Proxy” startet mit der Behauptung, dass mit dem Proxy sicheres surfen möglich sei. Dies testen wir direkt einmal, indem wir eine beliebige Webseite – hier f00l.de – mit der beschriebenen URL aufrufen.

CodeGate CTF 2014 - Web Proxy - Website

Der Blick in die Protokolle zeigt, dass die Seite tatsächlich abgefragt wird und die angegebenen HTTP-Header mit denen der Webseite überein stimmen. Als Nächstes sehen wir uns den Quellcode der Proxy-Seite etwas genauer an und finden am Ende folgende Zeilen vor:

CodeGate CTF 2014 - Web Proxy - Source Code
Continue reading

Share this post...Share on Google+Share on LinkedInShare on RedditTweet about this on TwitterShare on Facebook

Raspberry Pi mit EA-DOGM Display

Wer mit dem Raspberry Pi rumspielt, hat ja meist seine ganz eigenen Ideen, was er oder sie anstellen will. Eines meiner ersten Projekte sollte die Nutzung eines kleinen Displays am Pi sein.

Nachdem ich meine ersten Versuche mit dem Pi gemacht hatte, und Reichelt mir dankenswerterweise ungefähr  2kg toten Baum (f.k.a. den Katalog) zugeschickt hatte, fand ich beim Stöbern die Displays von Electronic Assembly, genauer gesagt die DOG-Serie: Das sind kleine, “grafische” Displays in verschiedenen Größen bzw. Auflösungen.

Mein ursprünglicher Plan, ein Standard 16×2-Zeichen-Display für den ersten Test zu verwenden wurde also über Bord geschmissen und ich machte meine ersten Gehversuche mit dem EA-DOGM mit einer Auflösung von 128×64 Pixeln.

Im folgenden Artikel möchte ich dieses Projekt vorstellen. Continue reading

Share this post...Share on Google+Share on LinkedInShare on RedditTweet about this on TwitterShare on Facebook