このブログははてなブログからの移行記事です。

CTF開いた

某コミュニティでCTF開いた

やるきっかけとしては

  • ISUCONで人権を失う
  • SECCON予選で人権を再び取り戻そうという決意を固める
  • でもCTF力全然ないし練習会しよう

という感じ。

学生の頃にちょっとだけCTFに参加したことがあったのと、ちょっと使ってみたいOSSがあったので主催した。

忙しいのに合間を縫ってyagihashooには問題を作ってもらったり、当日参加して解説してくれたりした。ありがとう。

ちなみに同コミュニティではISUCONの練習会もやってたり(こちらはhoto氏が開いてくれた\(^o^)/)。

ISUCON 練習会をするために InfluxDB + Grafana でポータルサイトを作った - ほとラボ

CTFを開いたきっかけ

一番のきっかけは私がずっと前からこれを使ってみたかったというのが実はあった。

github.com

CTFをやったことある人はわかるんだけど、Flagを送信したり得点を表示するポータルサイトなるものが必要になる。

これはFacebookが作ったポータルサイトOSSでめっちゃカッコイイ。

gyazo.com

これが実際の画面。プロビジョニングするだけですぐできるし機能も多くて、もしCTFやる人がいたらぜひオススメしたい。

AWSのEC2インスタンス立ち上げてgit cloneしてshell叩いてLet's Encryptしたら終わりです。

AWS慣れてないので金銭感覚わからないけど7, 8人参加で2000円くらいしかかからなかった。

問題構成

CTFやったことない人が大半、かつWebの人が多かったので全ジャンルの初級編 + Webの中~上級編という感じで15問出した。

とはいいつつ私も全然CTFしたことないのでいわゆる良問なるものを探したり、昔自分が解いたやつを参考にしたりして作った。

いろんな問題とかWriteupとか読んで、世のCTFerはすごいなぁと思った|ω・`)

やってみて

CTFをやるって決まった時は実装で死ぬかなぁと思ってたけど、どっちかっていうといい問題を作ることに頭を使ってる時間のほうが長かった。

「この問題が解けたらこんな学びがあるように」みたいなことを考えつつ、脆弱性を作り込むのは結構楽しかった。

そしてPHPとDocker超便利。本当に便利。

CentOS7でPHP5.2をビルドしようとして絶望してたけどDocker使ったら瞬殺だった。

当日まで楽しんでもらえるかめっちゃ不安だったし、学びも何もない会になったら飛び降りるしかないと思ってたけど楽しいと言ってもらえたのでよかった。

まとめ

そもそも自分も全然できないのに企画するの不安だったり、運営ぐだぐだだったりしたけど学びが多かったしCTFに興味ある人いたらぜひオススメしたい。

唯一はしゅに作ってもらった問題が解けなくてやはり人権得られなかったので修行していきたい。

頑張って来年のSECCON予選でるぞい!