Ulli Weichert/ September 24, 2021/ IT-Security, Write-Ups/ 0Kommentare

Ich habe heute das erste mal wirklich an einem CTF teilgenommen, der Start war etwas holprig aber ich konnte nun auch mal die Luft des geknackten Rätsels wittern und werde definitiv häufiger Hand anlegen.

Hier nun auch mein erstes WriteUp zur Challenge "How to pronounce GIF".

Gegeben war dieses GIF:
GIF

Schritt 1

Als erstes habe ich mir via exiftool, eog und stegsolve das Bild genauer angeschaut und nichts gefunden. Dann habe ich mir das GIF generell etwas genauer angeschaut und festgestellt, dass es wie ein zerteilter QR Code aussieht, weshalb ich einfach mal das Viech zerlegt habe:

Mein Arbeitsverzeichnis:

┌──(um3n㉿Penetration)-[~/Downloads/How to pronounce GIF]
└─$ ls -la 
total 120
drwxr-xr-x 4 um3n um3n   4096 Sep 24 21:40 .
drwxr-xr-x 3 um3n um3n   4096 Sep 24 21:40 ..
-rw-r--r-- 1 um3n um3n 106214 Sep 22 01:23 challenge.gif
drwxr-xr-x 2 um3n um3n   4096 Sep 24 21:40 result
drwxr-xr-x 2 um3n um3n   4096 Sep 24 21:40 splitted

Via convert habe ich nun einfach das GIF challenge.gif in ein PNG aufgeteilt, hier wird nun jedes Bild in der GIF Sequenz in ein eigenes PNG gespeichert.

convert challenge.gif splitted/splitted.png

Nun habe ich mir die einzelnen (119) Bilder etwas genauer angeschaut. Mir vielen die unterschiedlichen Farben der einzelnen QR Codeschnippsel ins Auge, weshalb ich ein mögliches Muster überlegt habt.
Screenshot
Wie man auf dem Screenshot sehen kann, scheinen die unterschiedlichen Farben sich bei jedem 10ten Bild zu wiederholen. Weiter gehören die Bilder in 10ner Schritten augenscheinlich auch zusammen. Also dachte ich mir, wir fügen jedes zehnte Iteration einfach zusammen.

Sicherlich hätte man diese Schleife auch schöner binden können, aber egal 🙂

for i in {0..9};do convert splitted/splitted-{${i},1${i},2${i},3${i},4${i},5${i},6${i},7${i},8${i},9${i},10${i},11${i}}.png -append result/result${i}.png;done

Nun hatte ich meine 10 QRCodes - aber noch nicht meine Flagge.

Nichts liegt hier also näher, als die QRCodes mal auszulesen, da ich ohnehin in Linux unterwegs war kurz zum zbarimg gegriffen und die Werte ausgelesen:

└─$ zbarimg result/result*          
QR-Code:The princess is in another castle
QR-Code:https://bit.ly/3Afouex
QR-Code:f0ll0w 7h3 wh173 r4bb17
QR-Code:https://bitly.com/98K8eH
QR-Code:(\(\
( -.-)
o_(")(")
QR-Code:RFVDVEZ7YU1
QR-Code:https://bit.ly/2YOdoPM
QR-Code:fMV9oYVhYMHJfbjB3P30=
QR-Code:( )( )
(O.O)
o_(")(")
QR-Code:https://www.youtube.com/watch?v=N1AL2EMvVy0
scanned 10 barcode symbols from 10 images in 0.04 seconds

Schaut euch gerne die Videos an, es ist 1A NerdHumor 😀

Was wir allerdings brauchen sind die zwei Schnippsel der zusammengewürfelten Buchstabenketten. (Flagge wurde in zwei QR Codes verteilt)

QR-Code:RFVDVEZ7YU1
QR-Code:fMV9oYVhYMHJfbjB3P30=

Einmal zusammenkopiert RFVDVEZ7YU1fMV9oYVhYMHJfbjB3P30= und durch den Base64-Wolf gedreht:

└─$ echo RFVDVEZ7YU1fMV9oYVhYMHJfbjB3P30= | base64 --decode
DUCTF{aM_1_haXX0r_n0w?}

Bekommen wir auch schon unsere Flagge.

Share this Post

Über Ulli Weichert

2004 fing Ulli bei der Bundeswehr als Ausbilder und IT-Spezialist an. 2011 hat Ulli eine Umschulung zum Fachinformatiker für Systemintegration absolviert und sich auf Linux spezialisiert. 2016 hat Ulli dann bei einem mittelständischem Unternehmen, welches Kunden in ganz Deutschland betreut, als Linuxadministrator angefangen und kümmert sich seither nebst, Netzwerk, Security, Firewall, Storage überwiegend um Linuxthemen aller Art. Seit kurzem hat auch Ihn das Thema Container und k8s erwischt.

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*
*