返回更新列表
新发布Aug 19, 2026

CTFd v3.8.7

CTFs,按需使用

分享

CTFd MySQL CI Linting MajorLeagueCyber Discourse Documentation Status

CTFd 是什么?

CTFd 是一个 Capture The Flag(夺旗赛)框架,专注于易用性和可定制性。它包含运行 CTF 所需的一切,并且可以通过插件和主题轻松定制。

CTFd is a CTF in a can.

功能特性

  • 通过管理界面创建你自己的题目、分类、提示和 flag
    • 动态计分题目
    • 支持可解锁题目
    • 题目插件架构,用于创建你自己的自定义题目
    • 基于静态字符串与正则表达式的 flag
      • 自定义 flag 插件
    • 可解锁提示
    • 文件上传至服务器或兼容 Amazon S3 的后端
    • 限制题目尝试次数并隐藏题目
    • 自动暴力破解防护
  • 个人与团队竞赛
    • 用户可独立参赛或组建团队协作
  • 支持自动平局裁决的排行榜
    • 对公众隐藏分数
    • 在特定时间冻结分数
  • 比较前 10 名队伍的分数图与队伍进度图
  • Markdown 内容管理系统
  • 支持 SMTP + Mailgun 电子邮件
    • 支持邮件确认
    • 支持找回密码
  • 自动开始和结束比赛
  • 团队管理、隐藏与封禁
  • 通过插件和主题接口定制一切
  • 导入和导出 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 数据统计追踪器,提供赛事安排、队伍跟踪以及赛事单点登录功能。

通过向 MajorLeagueCyber 注册你的 CTF 赛事,用户可以自动登录、跟踪个人和团队分数、提交题解(writeups),并接收重要事件的通知。

要与 MajorLeagueCyber 集成,只需注册账户、创建赛事,然后在 CTFd/config.py 的相关部分或管理面板中填写客户端 ID 和客户端密钥:

OAUTH_CLIENT_ID = None
OAUTH_CLIENT_SECRET = None

致谢

分类