EKOPARTY CTF 2016 Writeup
こんにちは.何故か平日開催で時間取れなかったEKOPARTY CTFにチームg0tiu5aで参加していました.合計で500ptをとり, 206位でした. 途中までのペースは100位を切れそうだったのですがpwnが全然とけないのと, Forensicsでつまりおもったよりも点数を取れませんでした. 個人的には100チーム以上解けているような問題はきちんと解ききりたいなと思っているのですが, なかなか難しいものです.
さて, 以下に今回のCTFで自分が解いたWriteupを載せておきます.
Misc 50 Hidden inside EKO
ぱっとみは画像見れないけど, 適当に背景画像をダウンロードしてきて, あとは目grepすれば終わりです.
Flag: EKO{th3_fl4g}
Web 25 Mr Robot
https://ctf.ekoparty.org/robots.txt を見ます.すると /static/wIMti7Z27b.txt へのリンクがDisallowとなっていました. なのでそのファイルを読むとフラグが出ました.
Flag: EKO{robot_is_following_us}
Web 50 RFC 7230
HTTPのレスポンスヘッダにありました.
$ curl -v ctf.ekoparty.org * Rebuilt URL to: ctf.ekoparty.org/ * Trying 52.204.197.190... * Connected to ctf.ekoparty.org (52.204.197.190) port 80 (#0) > GET / HTTP/1.1 > Host: ctf.ekoparty.org > User-Agent: curl/7.49.1 > Accept: */* > < HTTP/1.1 301 Moved Permanently < Server: EKO{this_is_my_great_server} < Date: Thu, 27 Oct 2016 07:40:53 GMT < Content-Type: text/html < Content-Length: 178 < Connection: keep-alive < Location: https://ctf.ekoparty.org/
Flag: EKO{this_is_my_great_server}
FBI 25 Welcome to the dark side
.onion ということはTorサイトですね. Tor経由でアクセスするとWebサイトが出てきて,そこのソースコード内にFlagがありました.
Flag: EKO{buy_me_some_b0ts}
FBI 50 Metadata
もともとFBI 25を解く前にこっちのFlagを見つけていたのですがSSL証明書の中にFlagがありました.
Flag: EKO{is_this_just_real_life_is_this_just_fantasy}
Rev 25 JVM
classファイルが与えられました.実行しても特に何も表示されません.てなわけでデコンパイラを探してきてデコンパイルしました.
Flag: EKO{893116}
Rev 50 F#ck
中身を見て, タイトルを見ても分かる通りF#です.本当にありがとうございました.
てなわけでF#でコンパイルしたEXEファイルの解析です.とはいってもILSpyを使って, C#に戻して, コードを読みます.
コードを軽く読むと, 文字列t#hs_siht_kc#f
を反転しているだけでした.
Flag: EKO{f#ck_this_sh#t}
Rev 75 RrEeGgEeXx
Rev50と同じく中身は.NETで作ったEXEファイルです.ILSpyを使ってコードを読むと, 正規表現でFlag形式を特定していました. 一瞬前回のHITCONが思い出されましたが, そのレベルの難しさではなかったです.
雰囲気としては以下のような感じです.
^.{40}$
→ フラグ文字は40字\\w{3}\\{.*\\}
→ 先頭3文字アルファベットで始まりその後{が来て文字が続いたあと}でおわる. 先頭3文字はフラグフォーマットよりEKOである._s.*e_
→ s(何文字か入る)e\\{o{2}O{2}o{2}
→{ooOOoo
O{2}o{2}O{2}\\}
→ ↑と同じ感じsup3r_r3g3x_challenge
→ 特に言うことなし
Flag: EKO{ooOOoo_sup3r_r3g3x_challenge_OOooOO}
Pwn
Pwn Ultra Babyが解けず, 悲しい気持ちです. きちんと勉強したい.
Pwn 100
何故かバイナリが与えられない問題. FSBがあったのでどうせスタック上にFlagがあるんやろって考え, スタックを掘りました.
$ python -c 'print("%8$x%9$x%10$x%11$x")' | nc 9a958a70ea8697789e52027dc12d7fe98cad7833.ctf.site 35000 Welcome to my first service Please input the secret key: Invalid key: 454b4f7b4c614269674265663072647d ...
あとは出てきた16進数を煮たり焼いたりして文字列におこせばおしまいです.
Flag: EKO{LaBigBef0rd}
Forensics
僕は1問も解けませんでした.精進が必要.
まとめ
基本的に簡単な問題しか解けませんでした.けれども今回はTorとかパンチカードとか中々触れないような問題が多く, 個人的には学びが多かったなぁという印象です.
あとCTFでのメモとか進捗状況はチーム内Slackで報告しあっていたのですが, Trelloを活用し始めました. 結構便利かなと思っているのでこれからは活用していきたい.