まとめ
サイバー甲子園に参加しました
なんか会場入りしたら格好良い本がおいてあって最高でした。
机においたあったけどこれなんだろう……? pic.twitter.com/HVrxnziE99
— ふるちゅき (@theoldmoon0602) 2016年11月12日
CTFが始まって、私はinsecureという一人チームでした。
解いた問題のWrite-Upは後に述べるとしてCTF中どうだったかと書くと、序盤は自明問題をさくさく解けたので2位か3位で「これいけるじゃんね最高」とかなってましたが、そこから詰まって結局2000ptsとれずにつらい思いをして終わりました。
結果は五位で、優勝したチームと2位のチームと3位のチームと4位のチームに負けました。4位のチームに負けたのと2000ptsボーダを超えられなかったのがとてもつらいです。
でもひとりで頑張ったので一人で頑張ったで賞として京都府警の課長賞(詳細な賞名はわからない)をいただきました。身に余る光栄です。なんかこれは履歴書にも書けるそうなんですが、どのくらいすごいんでしょうね。
それから懇親会に出ました。産技高専の人と喋ったり、沖縄の人と喋ったり、優勝したチームの人と喋ったりしました。懇親会は楽しいのでいいですね。
それから帰りました。有意義な一日でした。
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
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問程度は解ける問題だったのでつらいです。