アップデート一覧に戻る
New releaseAug 19, 2026

CTFd v3.8.7

必要なだけのCTF

共有

CTFd MySQL CI Linting MajorLeagueCyber Discourse Documentation Status

CTFdとは?

CTFdは、使いやすさとカスタマイズ性に重点を置いたCapture The Flagフレームワークです。CTFを開催するために必要なものがすべて揃っており、プラグインやテーマを使って簡単にカスタマイズできます。

CTFdは缶詰のCTFです。

特徴

  • 管理インターフェースから独自のチャレンジ、カテゴリ、ヒント、フラグを作成できます。
    • 動的スコアリングチャレンジ。
    • アンロック可能なチャレンジのサポート。
    • 独自のカスタムチャレンジを作成できるチャレンジプラグインアーキテクチャ。
    • 静的フラグと正規表現ベースのフラグ。
      • カスタムフラグプラグイン。
    • アンロック可能なヒント。
    • サーバーまたはAmazon S3互換バックエンドへのファイルアップロード。
    • チャレンジの試行回数制限とチャレンジの非表示。
    • 自動ブルートフォース保護。
  • 個人戦・チーム戦のコンペティション。
    • ユーザーは個人でプレイすることも、チームを組んで一緒にプレイすることもできます。
  • 自動タイブレーク機能付きスコアボード。
    • スコアを一般公開しない設定。
    • 特定の時刻にスコアを凍結。
  • 上位10チームを比較するスコアグラフとチーム進捗グラフ。
  • Markdownベースのコンテンツ管理システム。
  • SMTP + Mailgunによるメールサポート。
    • メール確認のサポート。
    • パスワードを忘れた場合のサポート。
  • コンペティションの自動開始・終了。
  • チームの管理、非表示、BAN。
  • プラグインとテーマのインターフェースを使用してすべてをカスタマイズできます。
  • アーカイブ用のCTFデータのインポートとエクスポート。
  • その他にも多数...

インストール

最も簡単に始める方法は、ホスト型CTFdインスタンスを利用することです。

自己ホストでのインストールについては、CTFdドキュメントでデプロイオプションとスタートガイドを確認してください。

以下は、CTFdを自己ホストするためのいくつかのオプションの概要です:

Docker

ソースリポジトリから次のコマンドでDocker Composeを使用できます:

docker compose up

自動生成されたDockerイメージを直接使用するには:

docker run -p 8000:8000 -it ctfd/ctfd

開発

  1. uvをインストールし、uv syncを実行して、依存関係がインストールされたvirtualenvを作成します。
    • 既存の環境にpip install -r requirements.txtでインストールすることもできます。これはuv.lockから生成されます。
  2. CTFd/config.iniをお好みに合わせて変更します。
  3. ターミナルでuv run serve.pyまたはuv run flask runを使用してデバッグモードに入ります。

ライブデモ

https://demo.ctfd.io/

サポート

基本的なサポートを受けるには、MajorLeagueCyberコミュニティに参加してください:MajorLeagueCyber Discourse

商用サポートをご希望の場合や特別なプロジェクトがある場合は、お気軽にお問い合わせください。

マネージドホスティング

CTFdを利用したいが、インフラの管理は避けたいという方は、CTFdウェブサイトでマネージドCTFdデプロイメントを確認してください。

MajorLeagueCyber

CTFdはMajorLeagueCyberと緊密に統合されています。MajorLeagueCyber(MLC)は、イベントのスケジュール管理、チーム追跡、イベントへのシングルサインオンを提供するCTF統計トラッカーです。

CTFイベントをMajorLeagueCyberに登録すると、ユーザーは自動的にログインし、個人およびチームのスコアを追跡し、writeupを提出し、重要なイベントの通知を受け取ることができます。

MajorLeagueCyberと統合するには、アカウントを登録してイベントを作成し、CTFd/config.pyの該当箇所または管理パネルにクライアントIDとクライアントシークレットを設定するだけです:

OAUTH_CLIENT_ID = None
OAUTH_CLIENT_SECRET = None

クレジット

カテゴリ