まとめ
サイバー甲子園に参加しました
なかみ
朝早く起きて、家を出ました。サイバー甲子園に参加するためです。でも、そのまえに、京都駅まで行って、「きんいろモザイク pretty days」を見てきました。朝一番の上映だったのでpretty days最速でみられてちょっとホクホクしてました。
しかも、前売り券買ってないのに色紙をもらえて最高でした。余ってたんやね。小路綾ちゃんかわいいですね。
作品自体は好きだけど劇場で見るよりもお家とかで見るほうが楽しそうみたいな感じのあれでした。なんでだろう。映画と非映画は何が違うんだろう。でも有意義な時間でした。
映画を終えて、伏見駅で降りてミスタドーナツに入りました。小さいミスタドーナツでドーナツを食べてコーヒーを飲みました。となりに幼女がすわって、去り際にこっちを見たので小さく手を振ったら振り返してくれて幸せになりました。
それから向島駅に行って一本道をあるくと会場である京都府立すばる高等学校が見えました。むかいじまえきのあたりは何もなくてすごかったです。
すばる高校では沖縄チームgr0pの人たちと会いました。それから近況とかを喋ったりしてました。そしたら急に団体が現れて会場入りしたので続きました。彼らは混成軍でした。明石高専の人などがいました。明石高専の人に煽られました。煽り返しました。本当に無益な会話でした。
なんか会場入りしたら格好良い本がおいてあって最高でした。すごいぞ。なんかもらえるようだったので持って帰りました。明日の午前中とか読もうかな。でも明日の午前中は君の膵臓を食べたいも読みたい。
机においたあったけどこれなんだろう……? 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です。
こんなところを改善してくれ
競技中にもうちょっとBGM大きくするとかしてがやがやさせて欲しい。そのほうが人々が喋ると思うし盛り上がりみがあります。
多少エスパーが入っても仕方がないのでWebを出して欲しい(これは個人の嗜好ですが
競技中に飲食できる会場にして欲しい。CTFなのに甘いお菓子を摂取できないのはやばい
ジャンルわけするならもうちょっと分けて欲しい。programmingがprogrammingじゃなかったり(programming問は実質なかったけど)、cryptoがcryptoじゃなかったりしてた。
競技終了したら即座にサーバとめるのやめて欲しい。最終成績みたいです(これは仕方がないところがあるかもしれないけど、じゃあ30分前でスコアの更新をやめるとかあると思うので
こんなところは良かったぜ
事故らなかったので良かったです最高ですね
懇親会で大人の人とわりと喋れて良かったです。こういう機会はけっこう大事。絡まれるとうざいな……ってなるけどお話はしたいみたいな感じです
感想
解説をきいたら3問程度は解ける問題だったのでつらいです。ひとりでやるとそういうのが解けない。仲間は大事ですね。
ところで、今回配られた問題のバイナリなどをアップロードしてブログにぺってリンクを貼れるようなお手軽サービスをご存じの方はお知らせください。