初めての非常設のctfだった。 SECCON オンライン予選CTF & 技術交流会 in 神戸として、これに参加した人で構成されるチームGanbare Tigers Jrとして出場した。 1400点を取って134位だった。 手が出せる問題が思っていたより多く、楽しかった。

まとめ

  • 意外と解けた
  • 皆で解くの楽しい
  • ctfも精進したい

1日目

大きな部屋で集まって皆で解く。 私が参加したのは神戸の会場で、大阪にも会場があって、そちらとも共同で解く。 チームのskypeやslackで情報を共有する。 セキュリティコンテストチャレンジブックと先輩に勧められたHacking: 美しき策謀を持参したが、ほとんど読めていないので、開始前は、一問も解けないのではないかと少し不安だった。

secconは日本の昼3時に開始であった。 始まったら、とりあえず一番上のexercisesとされた問題を開くと、単純な換字式暗号だったのでtrして提出。correctと言われる。

次の問題を見る。3つ問題があって、youtubeの動画が与えられるので動画中のqrコードを読み取る問題と、zipファイルの鍵を破る問題と、androidアプリを破る問題。 一通り問題を見て、他の人に話を聞いて、androidの問題を頑張ることにした。

他の人がyoutubeの動画の問題を解いた。すごい。

少しして、androidを頑張っていたが特に目立った進展もないところに、問題が追加された。 Command-Line Quizという問題が解けそうだったので、これに注力する。stage 1から5まであって、5までは簡単に進んだ。しかし、5が解けそうなのに解けない。

さらに時間が過ぎて、また問題が追加される。Decrypt itという問題が出来そうだったので、これをやる。これをずっと頑張る。 どうにもだめなので人に話を聞いて貰う。これがきっかけで解けた。このとき、もうすぐ9時。 気付かない間にも幾つか正解が増えている。

他の人が、nonogramを解いた答えをqrコードとして読みとり提出することを繰り返す問題をしていたので、これを手伝う。 11時ほどになり、大阪会場が閉まり、他の人で家に帰る人が居たので一緒に帰る。 会場で徹夜するという人もいた。

帰宅後も結局5時まで問題を解いていた。 Steganography 3という問題が、バイナリの16進出力が画像として与えられ、ひたすら復元する問題に見えたので、これをやった。 ocrを駆使し、手でひたすら修正し、他の人が修正した別のそれと突き合せて精度を上げ、なんとか復元に成功する。 復元してもまだflagは出てこなかったのだが、復元結果をslackに上げていると、他の人がそこから先を終わらせてくれた。なお、ocrにはgoogle documentのそれを用いた。tesseractはだめだった。

2日目

11時ぐらい起床。 朝ご飯を食べて会場に。 終了は昼3時なのでもう時間があまりない。

未だ解けていないが正解したチームの数を考えてもやはり解けるはずの、Command-Line Quizを頑張る。 ひたすら試行錯誤した。 expectのscriptを書いて総当たりをしてみたりした。 busyboxを調べて色々試してみたりもした。 その後、あっさりとした方法で解けた。

解き終わった時点でもう時間が残り少なく、特になにもできずに終了。

終わったので皆で解法の共有をした。解いた人が発表をする。 zipを破る問題やandroidを破る問題の解説は、セキュリティっぽい感じがして面白かった。 私もいくつか話した。

その後、参加者の半数ほどで近くのお店に入り、歓談を楽しんだ。

ctfは楽しかった。セキュリティよりではあるが、プログラミング技術全般を使う問題セットなので、私でも意外となんとかなってしまった。 競プロよりctfの方が範囲が広いので、競技屋がctfにでれば普段やっているような問題がいくつか存在するようだ。

解けるので楽しいというのもあるが、チームでわいわいしながら解くというのもやはり楽しい。 結果として、ctfにも力を入れたいなと感じた。

今回と同じ場所では定期的にctf onsiteが行われているようなので、次も参加したい。 また、参加者のひとりから、学生が主体でctfを開催しようという話があって活動している、という話も聞いた。これも参加したい。

最後に、seccon運営やあの会場の企画には感謝しています。楽しかったです。

writeup