はじめに
2017/02/03 19:00~2017/02/06 17:00(日本時間)、AlexCTFがアレクサンドリア大学主催で開催されていました。例によってチームEAnbaiの一員として参加し、チームとしては1190ptで215位(/1029?)で終了しました。以下、解いた/取り組んだ問題について簡単に書きます。
解いた問題
Reversing 1 (50pt)
Stringsコマンドで文字列を見るだけで終わり。
Flag: ALEXCTF{Y0u_h4v3_45t0n15h1ng_futur3_1n_r3v3r5ing}
Forensic 3 (150pt)
USB通信のキャプチャが渡されるのでWiresharkで確認する。どうやらUSB_BULK outというのが怪しく、データが入ってるっぽい。いくつかあるが、その中にそれらしきものを見つけた。
|
|
先頭2byteを見るとどうやらpngっぽいのでファイルにして中身を見る。
|
|
Flag: ALEXCTF{SN1FF_TH3_FL4G_OV3R_USB}
Trivia 2 (20pt)
問題文
SSL 0day
It lead to memory leakage between servers and clients rending large number of private keys accessible. (one word)
ALEXCTF{Heartbleed}?しかしこれが通らない。ここで問題文末尾の「one word」というのが引っかかる。フラグフォーマットはALEXCTF{[A-Za-z0-9_]*}となっているが、それは問題文で指定されていない時に限るとの記述が…。
Flag: Heartbleed
Trivia 4 (40pt)
AlexCTFのページにロゴにフラグが隠されているので探してね、という問題。
フラグをテキストで保存し、vimで以下の置換を適用。
|
|
Flag: ALEXCTF{OUR_LOGO_ROCKS}
取り組んだ問題
Reversing 4 (250pt)
pycが渡されてフラグを探す問題。pycdcを用いてPythonソースコードを復元した。
|
|
|
|
フラグを5文字ずつに区切ってMD5ハッシュにしたものをソースコード内に保持しているので、ソースコード内のmd5ハッシュを復元すれば終わり。onlineのデコードサイトでdecryptしたものをつなげて投げたものの通らず、何でだろう…と思っていたら7つ目のハッシュが1文字足りていなかった。チームSlackに投げたところ先輩が解いてくれたので結果オーライ(とは言え悔しいので精進します(´・ω・`))。頭に0をつけるだけの発想がどうして出てこなかったんだろう…。
Trivia 3
僕「CA issueって言ってるし何か問題あるんじゃね!?」
sio「issuedだと『発行する』の意になるってよ」
僕「魔剤!?(カチカチ…)letsencrypt」
> フラグだった <
問題文適当に読みすぎた。英語勉強し直したほうが良い。
おわりに
これはCTFに限らず、自分で箱を作ってその中で考えるのではなく、試せるだけの可能性を試すことが大事だと感じました(特にfore3)。
また、暗号系の問題を先輩に任せっきりなので、どうにか来年は暗号系もある程度解けるように真面目に数学勉強し直そうと思いました。
以上です。