
新发布Aug 19, 2026
CTFd v3.8.7
CTFs,按需使用
CTFd 是什么?
CTFd 是一个 Capture The Flag(夺旗赛)框架,专注于易用性和可定制性。它包含运行 CTF 所需的一切,并且可以通过插件和主题轻松定制。

功能特性
- 通过管理界面创建你自己的题目、分类、提示和 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
开发
- 安装 uv 并运行
uv sync以创建包含已安装依赖的 virtualenv。- 你也可以使用
pip install -r requirements.txt安装到现有环境中,该文件由uv.lock生成。
- 你也可以使用
- 根据需要修改 CTFd/config.ini。
- 在终端中使用
uv run serve.py或uv run flask run进入调试模式。
在线演示
支持
要获得基础支持,你可以加入 MajorLeagueCyber 社区:
如果你更倾向于商业支持或有特殊项目,欢迎联系我们。
托管服务
想使用 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
致谢
- Logo 作者:Laura Barbera
- 主题作者:Christopher Thompson
- 通知音效作者:Terrence Martin
