Introduction
CTF は Capture The Flag の略です
CTF を楽しむために
CTF って何の略だろう?って言うぐらいの初心者でも CTF を楽しめるようになるための指針です。
CTF初心者が考えるCTF入門 の記事も良くまとまっていると思うので是非読んでみてください。
実際に開催されている本当の大会に参加する
これは持論ですが、CTF 練習用のサイトで練習するのは個人的にあまりおすすめしません。練習用サイトで CTF してて本当に面白いですか?
練習用のサイトや問題をオススメしない理由
実際に開かれている大会に参加して必死に1問を解いた方が絶対に効率的です
リアルな問題を解いた方が、問題に慣れるという意味で良いと思います
ラッキーパンチで問題が解けた時に、自分って凄いんじゃないか???って言う感じで、モチベーションが上がり、次も頑張れるようになります
チームで参加できるので、複数人で取り組むことができます
全員が0ポイントからのスタートで、順位も出るため自分の成長がわかりやすいです
CTF の問題を解くために Google で何をどう調べたら良いかという能力が向上します
テストのための勉強をしっかりしてから、テストで良い点を取るやり方では、いつまでたっても問題は解けません。まずは参加してみましょう。
また、英語から逃げてはいけません。CTF の大会は基本的に全て英語です。問題文が読めない場合は Google 翻訳でも何でも使って、とりあえず参加してみましょう。
実際のところ CTF の大会はほとんど毎日のように開かれています。
CTF Time というサイトの Events calendar を見れば、各種大会の日程をカレンダー形式で確認することができます。直近に開催される大会については Upcoming を確認すると良いでしょう。CTFTIME に登録すればタイムゾーンを JST に変更することができるので、より使いやすくなります。
さらに CTFTIME の良いところは、各大会の writeup が集積されている点にあります。だいたい2~3日程度で、自分が参加した大会のユーザ解答がいくつか集まります。そのため、解けなかった問題を復習することができます。
大会参加の心得
全ての問題を解こうとしてはいけません。自分の興味のあるジャンルに絞って1~2問だけ解くようにしましょう。1〜2問程度であれば復習にもそれほど時間はかかりません。
また、全くわからない問題はすぐにあきらめましょう。後日、他の人の writeup を見ながら実際に手を動かしてフラグをゲットしてみてください。大会終了後も一定期間動いている大会が多いです。
大事なことは、大会が終わった後に着手した問題について深く理解し、自分で解けるようになるということです。他の参加者が書いてくれた writeup を読み、復習することで簡単な問題であれば解けるようになります。
CTF 参加 ~ 終了までの流れ
チーム名を決める
1人で参加する場合でもチームを作ることができます。
大会登録時に設定できる場合が多いので決めておきましょう。
参加する大会を決める
まずは参加することが大切だと思うので、自分の予定に会う大会を CTF Time で見つけましょう。
確認しておいた方が良い情報は Date
, Location
, Notes
です。
Date
: 大会の開催期間です。 (CTF Time に登録していて TimeZone を設定していない場合は、時差を考慮する必要があります)
Location
: On-ine の大会を選びましょう。
Notes
: 現時点での参加チーム数です。これは CTF Time に登録しているチームの参加予定数です。数が多ければ、終了後の writeup が期待できます。
大会に登録する
参加したい大会が決まったら、次は実際に参加登録を行います。
これは CTF Time では行えないため、実際に大会の公式URLにアクセスします。URL は CTF TIme に載っているので、そこから飛びます。
この例では Official URL: https://ctf.utsacyber.com/ にアクセスします。
基本的には良くあるWebサービス同様に登録するだけです。大会によって様々ですが、この初回登録時に参加チームを選ぶ場合もありますが、基本的には参加者の情報 (メールアドレスとパスワード) を登録するだけです。
ここで登録した内容でログインできるようになります。
また、ルールについて公開されている場合もありますので、目を通しておくと良いでしょう。
大会登録時の注意点・心得
開催直前までサイトにアクセスできない場合がある
参加登録の段階で CTF が始まっているんじゃないかと思うぐらい「参加手順」が良くわからない大会がある
大会ページが攻撃されている場合が結構ある
大会の参加に失敗してしまった場合は、気にせず他の大会に参加しましょう。
大会に参加する
絶対にやっておいた方が良いことは、以下の2点です。
特にフラグ形式は問題 (特に Crypto) を解くためのヒントになる場合が多いため、最初に絶対抑えておきましょう。
フラグ形式について
良くあるフラグ形式は xxxx{yyyyyyyy}
のような形です。
xxxx
: 大会ごとの固有の文字列や flag
, ctf
などが多いです。
yyyy
: 完全にランダムな文字列、ハッシュ値、英語の文章、英語の文章をちょっと変化させたものなど大会によって様々です。
英語の文章の場合、頑張れば推測できる場合もあります。
問題について
問題数と出題ジャンルは大会によって様々です。一応、開催期間が長い大会は問題数が多い傾向にあるように思います。
頑張って問題を解いていきましょう。
スコアと順位
問題の得点は変動制になっている場合が多いです。つまり、ベースの得点があり、さらに解いた人数に応じてその得点が減っていきます。
また、いつ解いても得点は同じです。最終的なスコアの合計で順位が決まります。
順位はチーム (登録していない場合は個人) でリアルタイムに確認することができるため、結構面白いです。
大会終了後
CTF で問題を解けるようになるためには、終了後の行動がかなり大事です。
できるだけ以下の作業を行いましょう。
解けた問題について writeup を書く
大会参加時の解き方、さらにはもっと効率的な解法等についての考察
解けなかった問題の writeup を読む
実際に writeup を見ながらフラグを取得してみましょう。
この2つを行うだけで、どんどん成長できます。
必要なスキル
ジャンルごとに必要なスキルは様々ですが、どのジャンルにも共通して必要となるスキルは Google 検索能力と英語です。
Last updated