yyy

CTFつよくなりたい

ASIS CTF Quals 2017 Writeup

開催期間(JST)

04/07 PM21:30 ~ 04/09 PM21:30

結果

・チーム名:wabisabi

・得点:169pt

・順位:132/451

解いた問題

・Welcome!(Trivia 1)

・Piper TV(Misc & Forensics 159)

・CTF Survey(Trivia 9)

(「Welcome!」と「CTF Servey」の2問はボーナス問題)

途中まで解いた問題

・Flour(Reversing 114)

はじめに

SECCON予選以来CTFに出ていなかったので,みんなで出ようとなって参加した.

自分にとってはレベルが高い問題ばかりでほぼ解けなくて惨敗.

全く解けてないぞお前!と未来の自分に残すために解いた問題などをまとめておく.

Writeup

Welcome!(Trivia 1)

ボーナス問題.

問題文

What is the smallest valid flag for ASIS CTF?

よって答えは,ASIS{}

Piper TV(Misc & Forensics 159)

問題文

Recently, a very interesting program has been broadcasted on Piper TV, have you watched it?

$ file PiperTV_e65d6f13bae89c187d2d719ee8bf35cfd9e96387     
$ PiperTV_e65d6f13bae89c187d2d719ee8bf35cfd9e96387: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 262144)

pcapファイルだとわかるので,Wiresharkで見てみる.

f:id:ywkw1717:20170409233653p:plain

後半のほうにある緑色に色付けされたパケットを見ていく.

これをHTTPストリームして,Raw形式で保存する.

f:id:ywkw1717:20170409234013p:plain

$ file target
$ target: MPEG transport stream data

MPEGだとわかるので拡張子を.mpegに変えて再生してみる.

すると,可愛らしい動物の動画が・・・

f:id:ywkw1717:20170409234519p:plain

19秒ほどの動画だが,よく見ていると14秒くらいで上のほうにフラグらしき文字列が一瞬現れるようになっている.

動体視力がくそで何回やってもそこで止まらないのでフレームを抽出することに.

ffmpegを使うといい感じに切り出せるので,フレームレート等を適当に設定して使う.

$ ffmpeg -i target.mpeg -f image2 -vf fps=100 frame%05d.png

約1800枚の画像ができる.少しやりすぎた感があった.

で,フラグが表示されている辺りを見ていくと

f:id:ywkw1717:20170409235638p:plain

CTF Survey(Trivia 9)

ボーナス問題.

どうでしたか~みたいなのをGoogleフォームに記入していくと貰える.

途中まで解いた問題

Flour(Reversing 114)

問題文

Flour is a basic ingredient in all bread making, what about this bread?

テキストファイルが与えられて,中身はよくわからない文字列.

:100000000C9436000C945E000C945E000C945E0020
:100010000C945E000C945E000C945E000C945E00E8
:100020000C945E000C945E000C945E000C945E00D8
:100030000C945E000C945E000C945E000C945E00C8
:100040000C9481020C945E000C944F020C942902D3
:100050000C945E000C945E000C945E000C945E00A8

こんなのが200行以上に渡って書かれている.

調べてみると,Intel Hexフォーマットというやつらしい.

バイナリをテキスト形式で運ぶため?に作られたものらしく,だったらデコードもできるだろってことでツールを探す.

sourceforge.net

このHex2Binというやつを使ってバイナリに戻す.

出てきたバイナリに対してstringsしてみると

Hey! Good job.
This is not real flag: ASIS{is_th1s_f4k3_flag?!!}
Enter real flag: 

という文章は見つけたものの,fake以外は見つからない.

だいぶ時間が経っても誰一人解いている人がいなくて諦めた.

感想

他にはpwn問のStartを友人とやってたけど解けなかった.

rev力とpwn力が無さすぎる.

とても厳しかった.