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

exits

勉強記録

IceCTF 2016 Writeup

IceCTFにWackMCというチームで参加しました. 全部で2231ptかな.

メンバー&WriteUp

途中からだったので,Stage1がほとんど終わってStage2も解かれ始めてた辺りからの参加でした.

問題はここから見られます.要ログインなのかな.https://play.icec.tf/challenges/

Stage 1

IRC I

指定のIRCサーバにLimeChatでつなぎ,チャンネル一覧を出すとこんな感じ.
f:id:yue82:20160828005547p:plain:w300

IceCTF{pL3AsE_D0n7_5h4re_fL495_JUsT_doNT}

Alien Message

https://play.icec.tf/problem-static/alien_message_b84f283848b7f34fd4c7529186e66e120b0a374c9d0f2a225b0a7a215716afb5.png
alien font で検索して,ようやくこれを見つける.

IceCTF{gOOd_n3wZ_3vEryoN3_1_L1k3_fU7ur4ma_4nd_tH3ir_4maz1ng_3as7er_39g5}

Scavenger Hunt

スポンサーページにあった.https://icec.tf/sponsors

IceCTF{H3Re_y0U_9O_M4s7Er_m4kE_5uR3_yOU_K33P_iT_54F3}

Stage 2

Exposed!

http://exposed.vuln.icec.tf/ robots.txtを見ると.gitflag.phpが見える. flag.phpは開いてもhtmlは書いてあるけど真っ白なページ. .gitの要りそうなところを色々落としていく.

.git/logs/HEADを見るとfilter-branchamend の文字が. 修正されたコミットは.git/objects/xx/xxxxxが残ってればlogに現れるそう.
git fsckでリポジトリの正当性を調べられて,必要なリポジトリが読めないと教えてくれるのでそれでがんばって落としていく.無駄に落として上書きしまくりなのでもうちょっと丁寧にやってもよかったかも.
IceCTF Exposed! writeup · GitHub

IceCTF{secure_y0ur_g1t_repos_pe0ple}

IRC II

IceBotに対してのコマンドの使い方が提示されていたのでプライベートチャンネルで話してみるが怒られる.
権限がいるのかと思ったが,Botのソースを読むとまずプライベートチャンネルだという部分で弾かれているらしい. チャンネルを作成してIceBotを招待すると,!flagコマンドで答えてくれた.
f:id:yue82:20160828024521p:plain

IceCTF{H3Re_y0U_9O_M4s7Er_m4kE_5uR3_yOU_K33P_iT_54F3}

Over the Hill

開くとalphabet,matrix,ciphertextが載ってる. タイトルと行列があるところからHill Cipherっぽい.Hill cipher - Wikipedia
numpyで逆行列を出すと小数になってしまいうまくいかず.

ここでmod 64の逆行列を出せたのでそれを使うといけた.

IceCTF OverTheHill writeup · GitHub

IceCTF{linear_algebra_plus_led_zeppelin_are_a_beautiful_m1xture}

Stage 3

Audio Problems

聞いてみたら周期的な音っぽかったのでFFTにかけてみる.
f:id:yue82:20160828024954p:plain:w300

IceCTF{y0U_b3t7Er_l15TeN_cL053lY}

Vape Nation

Steganographyということでこういうのを使った.

ポチポチやっていくとGreen0で見つけた.
f:id:yue82:20160828030026j:plain:w250

IceCTF{420_CuR35_c4NCEr}

Blue Monday

fileするとMIDIファイル.聞いてみたけど単音が適当に並んでる感じ.
適当なツールで開くとこんな感じで,音名の隣に並んでる数字がUnicodeっぽい範囲. f:id:yue82:20160828025326p:plain そんなに長くなかったので書き出して変換.

midi = [73, 99, 101, 67, 84, 70, 123, 72, 65, 99, 107, 49, 110, 57, 95,
        109, 85, 53, 73, 99, 95, 87, 49, 55, 104, 95, 109, 73, 68, 49,
        53, 95, 76, 51, 116, 53, 95, 72, 52, 118, 69, 95, 97, 95, 114,
        52, 118, 51, 125]

print ''.join([chr(m) for m in midi])

IceCTF{HAck1n9_mU5Ic_W17h_mID15_L3t5_H4vE_a_r4v3}

Matrix

hexの行列が並んでいる.2進数に変換してみると並び方がQRコードっぽい.
画像化してみても読み込めなかったのでよく見ると8番目・23番めの行・列がそれぞれその次の列とダブっていたので除去する.
IceCTF Matrix writeup · GitHub
f:id:yue82:20160828030412p:plain

IceCTF{1F_y0U_l0oK_c1Os3lY_EV3rY7h1N9_i5_1s_4nD_0s}

メンバーと一緒に解いたの

Intercepted Conversations Pt.1

leniaさんがKinesis Advantage PRO MPC/USB Keyboardを使ってるらしいと読み取って,ScanCodeから変換してくれたのがこれ.gidiky{,j0-p1v3-x,3o7t-4lt,4t5}
キーボードを調べてたらDvorak配列にできるモデルがあるなーってことで見てみると,QwertyのキーボードでDvorakとして打っているっぽい.

http://edikun.ocnk.net/data/edikun/product/contour-qd-usb.gif

変換して,さらにパケットからShiftを押しているところを見つけたら成功.tsunさんがすばやく変換してくれた.

IceCTF{Wh0_L1K3S_qW3R7Y_4NYw4y5}

Intercepted Conversations Pt.2

pcapのTCP Streamを見ていると,IRCでこんな会話をしているらしい. f:id:yue82:20160828032709p:plain:w300 encode.pycを送っていたのでそのデータを吸い出す.ABCTFでpycをpythonで読み込んで使うのがあったなぁと思ってやってみるも失敗.

そこで止まっていたらtsunさんがこんなのを見つけて解いてくれた!

一応自分でもやってみた.
IceCTF InterceptedConversationsPt.2 writeup · GitHub

IceCTF{4Lw4y5_US3_5s1_AnD_n3VR4r_mAKe_Y0ur_0wN_cRyp70}

所感

Miscばっかり解いてた.楽しい.
あとみんなで協力するような感じも楽しかった.

そして研究やレポが進まない.