ふるつき

v(*'='*)v かに

サイバー甲子園に参加した

まとめ

サイバー甲子園に参加しました

なんか会場入りしたら格好良い本がおいてあって最高でした。

CTFが始まって、私はinsecureという一人チームでした。

解いた問題のWrite-Upは後に述べるとしてCTF中どうだったかと書くと、序盤は自明問題をさくさく解けたので2位か3位で「これいけるじゃんね最高」とかなってましたが、そこから詰まって結局2000ptsとれずにつらい思いをして終わりました。

結果は五位で、優勝したチームと2位のチームと3位のチームと4位のチームに負けました。4位のチームに負けたのと2000ptsボーダを超えられなかったのがとてもつらいです。

でもひとりで頑張ったので一人で頑張ったで賞として京都府警の課長賞(詳細な賞名はわからない)をいただきました。身に余る光栄です。なんかこれは履歴書にも書けるそうなんですが、どのくらいすごいんでしょうね。

f:id:Furutsuki:20161112203018j:plain

それから懇親会に出ました。産技高専の人と喋ったり、沖縄の人と喋ったり、優勝したチームの人と喋ったりしました。懇親会は楽しいのでいいですね。

それから帰りました。有意義な一日でした。

Write Up

自明問題しか解けていない上、自明問題の中にも解けてないものがあったのでつらいです。解説をきいたら、これ三問くらいは解けて当然じゃ~んみたいな感じでした。stegsolveの名前をど忘れしたやつとSESSIONがmd5になってるのに気が付かないやつと、icmpのttlが変わってるのに気がついてないやつ。

それから、binaryが一問も解けてないので弱点が露呈した感じなりました。

Assembler Tanka

かの有名なアセンブラ短歌です。SECCON{57577}と吐くアセンブラ短歌を渡されて、これを実行できるというサイトの存在まで教えられたのでそこに投げるだけです。アセンブラ短歌すげぇ

gokai?

base64 -dを5回やるとSECCON{BASE64}が得られるような文字列が渡されました。

very easy

16進数が幾つかスペース区切りで渡されるので "".join(map(lambda x: chr(int(x, 16)), それ)) みたいにするとフラグになります

decode the flag

暗号化鍵と暗号化済みファイルが渡されるので、 "cat それ | openssl {} -d -k '鍵'".format(暗号化形式) みたいなのを回したら解けます。

gettheflag

なんどかHTTP通信をしているpcapがわたされるので strings それ | grep true みたいな感じにすると縦読みのflagが出ます

megrep

バイナリエディタで開くとSECCON{bsdbanner}というbitmap artが表示されます

x2.txt

ファイルをダウンロードしてきて "".join(map(lambda x: chr(ord(x)/2), open(それ).read()) すると解けます

decode the trapezoid QR code

f:id:Furutsuki:20161112210803p:plain

QRコードGIMPで補正してやると読めるようになります。

sum primes

エラトステネスとかで適当にたくさんの素数を生成してやって sum(primes[12344:31337]) とかすると解けるはずでしたが採点側がみすっていて時間を食いました。エラトステネスに自身がないときはどこかから素数表をもってくるだけです

blacked out PDF

黒塗りのPDFなので読めます

blacked out PDF again

同上ですが、今度はコピープロテクトがかかっています。でも私のViewerではコピープロテクトを無視していたらしく実質 blacked out PDFです

how much a fine?

なんか犯罪行為と犯罪名称を結びつける問題です。一発で解けますが、せいぜい20回かそこらためしたらおわりです。

acronym

googleです。

感想

解説をきいたら3問程度は解ける問題だったのでつらいです。