セキュリティ2015/12/07
システムアセスメント部の山崎です。
SECCON実行委員会(JNSA)が主催する、セキュリティ競技大会のオンライン予選 『SECCON 2015 オンライン予選(24時間CTF)』 が、2015年12月5日(土)~ 6日(日)に開催されました。公開されているランキングのページを見ると、実にさまざまな国の方々、計872チームが競技に参戦してくれたことが分かります。
世界に名だたる強豪チームの名前もある中、日本チームも健闘してランキング上位に食い込んでいますね!
さて、今回の予選で私は、3問の問題を出題しましたので、そのことについて書きたいと思います。
参加者の皆さんがどのように解いてくれたのかは、有志の方がまとめてくださっている『SECCON 2015 Online CTFのWrite-upが集まる魔法のスプレッドシート』の「Write-ups」シートを参照いただければと思います。
●Entry form [Web/Network] 100点
答えのフラグが、「SECCON{Glory_will_shine_on_you.}」だったあたりも、もろに甲子園を意識していますね。(笑
このWebアプリに存在するOSコマンドインジェクションの脆弱性を攻撃してフラグを得る問題だったのですが、問題Webサーバは2,588の異なるIPアドレスから、319万回の攻撃を受けました。OSコマンドインジェクションの脆弱性があるだけに、いろいろなプロセスがポコポコと立ち上げられて、サーバをお守りしながらヒヤヒヤが止まりませんでした。189チームの方に正答していただけました!
なお、メールアドレス欄に捨てメアドではない本物のアドレスを入れてしまった方もいるようで、ご指摘を受け、後から注意書きを追加し、ログをクリアしました。配慮が足りなかった点、お詫びいたします。
●QR puzzle (Windows) [Unknown] 200点
こちらからダウンロードできます。当初の想定では、(1)QRコードを画像認識して自動で答えるソルバーを書く、(2)バイナリ的に解く、(3)QRコードのDLLを偽物に入れ替える、(4)人力で頑張って解く、という解法を予想していて、(1)がいたら嬉しいな、と思っていました。
QRコードを9分割した画像ですが、分割した各ピースを左上・左下・右上・右下の4点の白い部分の多さを見れば、意外と誤判定無く、簡単にパズルを解くことができます。
例えば、左上・右上・左下が白ければそのピースは左上の箇所にハマりますし、まとまった白い部分がどこにも無かったら真ん中のピースです。
その考えで私が作ってみたソルバーの例を以下にアニメーションで載せます。
(クリックし、別ウィンドウでご覧いただけます)
たった1日で130人にも解読される難読化なんて不良品じゃないか!と。「え?誰に解かれたのかって?その辺にいる、世界最高レベルのハッカーたちですよ。」(・・・仕方がない気もしてきた。)
●Bonsai XSS Revolutions [Web/Network] 200点
SubjectとDateとに一斉にタグを送ると判定がバグるという、相変わらずのヤラカシがあったようで申し訳ないです。また、バイナリ的に解こうとする方からの「質問」の問い合わせが多く、夜の(英語をしゃべれる)運営メンバーたちにご苦労をかけました。運営メンバー内部の「問い合わせ対応が大変だったで賞」準優勝でした。すみません。。
今回の予選では、参加者の皆さんに、各問題に対して「Like」「Dislike」の評価をつけていただきました。私の問題については、以下のような状況でした。・・・QR puzzleの嫌われ方半端ない!(苦笑