読者です 読者をやめる 読者になる 読者になる

MMA CTF 1st 2015 Writeup

CTF writeup

CTFをやり始めてから約1年たち、個人で申し込みをするようにもなりました。
このブログではCTFのWriteupを中心に記録に残していこうと思います。

この大会は2015/9/5 9:00(JST)~2015/9/7 9:00(JST)に開催されました。
今回は個人で参戦。結果は280点で206位でした。
1点でも取ったチームは672チームいたようですので、
まずはまあまあの結果ですね。
この大会で自分で解けたものを中心にWriteupを書いておきます。

Welcome (Misc, Warmup; 10)

これはそのまま入れるだけ。

MMA{Welcome_To_MMACTF!!}

Patern Lock [Flag 1] (PPC, Warmup; 20)

Androidスマートフォンのパターンロックに関する問題。
Flag1は3×3の場合のパターンの総数。
これはググれば結果がわかる。

389112

Patern Lock [Flag 2] (PPC, Warmup; 40)

Androidスマートフォンのパターンロックに関する問題の続き。
Flag2は4×4の場合のパターンの最長の長さ。
これはわかりそうにないので、手を付けず。

Smart Cipher System [Flag 1] (Crypto, Warmup; 10)

16進数の暗号の問題。
Flag1の暗号はこれ。

36 36 2a 64 4b 4b 4a 21 1e 4b 1f 20 1f 21 4d 4b 1b 1d 19 4f 21 4c 1d 4a 4e 1c 4c 1b 22 4f 22 22 1b 21 4c 20 1d 4f 1f 4c 4a 19 22 1a 66

すべて+23してASCIIコードとして文字に変換するだけ。

MMA{bba85b6768db240f8c4ae3c29f9928c74f6ca091}

Smart Cipher System [Flag 2] (Crypto, Warmup; 10)

16進数の暗号の問題第2弾。

Flag2の暗号はこれ。

e3 e3 83 21 33 96 23 43 ef 9a 9a 05 18 c7 23 07 07 07 c7 9a 04 33 23 07 23 ef 12 c7 04 96 43 23 23 18 04 04 05 c7 fb 18 96 43 ef 43 ff

1対1の換字暗号だとわかったので、対応付けて変換する。

MMA{f52da776412888170f282a9105d2240061c45dad}

Smart Cipher System [Flag 3] (Crypto, Warmup; 30)

16進数の暗号の問題第3弾。
Flag3の暗号はこれ。

60 00 0c 3a 1e 52 02 53 02 51 0c 5d 56 51 5a 5f 5f 5a 51 00 05 53 56 0a 5e 00 52 05 03 51 50 55 03 04 52 04 0f 0f 54 52 57 03 52 04 4e

いろいろやってみたけど、法則性が掴めず、あきらめた。

Smart Cipher System [Flag 4] (Crypto, Warmup; 40)

16進数の暗号の問題第4弾。
Flag4の暗号はこれだが、最初から手を付けず。

62 a9 6c 28 0e 33 31 c6 68 cd 66 66 59 46 cc 53 0c 98 31 65 c6 35 c9 a9 60 4e 37 b0 33 46 0d 60 46 26 66 33 cc e6 a9 f6 6c 07 2b 23 af

Login as admin! (Web, Warmup; 30)

Webの問題で、adminのパスワードがFLAGになっている。
ID、パスワードが入力できるようになっているので、総当たりのプログラムで引き当てようとしたが、途中でセッションが切れてしまった。再び続きをやりながら、なんとかフラグをゲット。

MMA{cats_alice_band}

Splitted! (Forensics, Warmup; 30)

pcapファイルが与えられている。
まずはWiresharkでExport Objectsでファイルをエクスポート。
8つのflag.zipが出力された。
どうやら1つのzipファイルが分割されているようだ。
いろいろ結合の順番を考えていたら、Range:でバイトの範囲が記載されていた。
No.14:bytes=2345-2813
No.24:bytes=0-468
No.34:bytes=1407-1875
No.44:bytes=2814-3282
No.54:bytes=3283-3744
No.64:bytes=469-937
No.74:bytes=938-1406
No.84:bytes=1876-2344

このことからNo.24, 64, 74, 34, 84, 14, 44, 54に対応するflag.zipを順に結合し、できたファイルを解凍すると、flag.psdが入っている。
そのまま見ただけだと、空白画像であるが、GIMPでレイヤーを操作し、「レイヤーを最前面に」とすると、フラグが表示された。

MMA{sneak_spy_sisters}

f:id:satou-y:20151010183905p:plain

Nagoya Castle (Stego; 100)

pngファイルが与えられている。
まず、Stegsolve.jarでポチポチっとビット演算の結果を表示させる。
Red Plane 0 でフラグが表示された。

MMA{raw_cr3am_pasta!}

f:id:satou-y:20151010185109p:plain

MQAAAA (Misc; 70)

とりあえずBASE64エンコードっぽいので、BASE64デコードする。
するとこんな文字列が...。

#@~^MQAAAA== Um.bwDR+1tKcJtH) Dtnm6VlTmhKDN|rd{K46EdmCObWU8rbjRIAAA==^#~@

これをググると、vbeなどがこのようなコードになるということがわかった。
テキストにこの文字列を書いて、拡張子をvbeとして実行すると、フラグが表示された。

MMA{the_flag_word_is_obfuscation}