CTFはどんなカテゴリがあるか?頻出カテゴリ1Web問編

こんにちはmegumishです。

最近、CTFに入門しようとしてる方に具体的にどういうカテゴリの問題があるのかと聞かれることがよくあります。

そこで、どうせならと一つの記事として情報をまとめておこうと思います。

そもそもCTFって?

CTFは Capture The Flagの略で、ここではサイバーセキュリティの競技を指します。

CTFは問題に提供された環境内のどこかにあるフラグを探す競技です。

要はセキュリティの知識を駆使して、宝探しをすると言うゲームになります。

(もしくは、脱出ゲームのようだと言った方が正しい場合もありますが)

だいたいのカテゴリの練習方法にてオンラインイベント型CTFに出ると書きましたが、じゃあどこでオンラインCTFを探せばいいのかと思う方もいるかと思いますが

ctftime.org

にほとんどのオンラインCTFの開催情報が載っています。

CTFで頻出されるカテゴリ

Web

Webページのセキュリティを突く問題です。

さて、セキュリティを突くと言うことはどう言うことでしょうか?

普段、私たちはTwitterGoogle検索などを使っていますが、そう言ったWebページを見るのにはHTTPリクエストを送る必要があります。

HTTPリクエストにはそのリクエストを受け取るサーバーが意図していなかった情報が付加されているとクラッシュしたり、意図していない動作をするケースがあります。

このような動作を使うことで、本来私たちが手に入れることができないはずだった情報を入手することができたりします。

こういったことをセキュリティを突く、あるいはExploit(エクスプロイト)と言ったりします。

先ほど「本来私たちが手に入れることができないはずだった情報を入手する」と言いました。こうやって手に入れられる情報のうち、指定されたフォーマットのもの(例えば NANTOKA_CTF{F1AG_D4Y0})みたいなものをフラグと言い、問題ページで提出することで競技上の得点を手に入れることができます。

使えるツール

  • Webブラウザー(firefox, google chromeなど) Webブラウザで色々なリクエストを送って見て観察して見るのがまず第一の問題を解く手法です。
  • Webブラウザーのインスペクターツール これは検証用ツールとも呼ばれるツールです。HTTPのレスポンスや通信している場所などを確認できます。
  • curl・httpie 少し難しいですが、CLIコマンドラインインターフェース)上のツールになります。

検証用ツールでも同様のことはできますが、好きな文字列をリクエスト上で簡単で再現することができます。

練習方法

  • オンラインイベント型CTFに出る 王道の練習方法です。Web問は基本的にサーバーのソースコードが公開されないため開催中しか試せないので、CTFに出て問題を解くのが確実な練習方法になります。
  • オンライン常設型CTFに出る これは ふるかわ さんが

nanuyokakinu.hatenablog.jp

にまとめてくれています。 - 本を読む

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践

通称・徳丸本と呼ばれる本がWeb問を解く取っ掛かりとしても極めて行く方にも良いのかと思います。

疲れました。

唐突ですが疲れました。

他のカテゴリは後日書きます……。(が、自分は怠惰なのであまり期待しないでください。)