GZ::CTF 是一个基于 ASP.NET Core 的开源 CTF 平台,采用 Docker 或 K8s 作为容器部署后端,提供了可自定义的题目类型、动态容器和动态分值功能。
本项目缘起于作者认为 CTFd 的实现不优雅,动态容器配置需要采用插件的方式,且前端不好看,同时为了办校赛和帮助其他学校的同学办赛,于是自己动手写了一个。
GZ::CTF 基于 AGPLv3 协议开源,使用和修改均需遵守开源协议。开始部署请参考 快速上手。
升级和迁移注意事项:
创建高度可自定义的题目
题目类型:静态附件、动态附件、静态容器、动态容器
动态分值
分值曲线:
其中 为原始分值、 为最低分值比例、 为难度系数、 为提交次数。前三个参数可通过自定义实现绝大部分的动态分值需求。
三血奖励: 平台对一二三血分别奖励 5%、3%、1% 的当前题目分值
比赛进行中可启用、禁用题目,可多次放题
动态 flag 中启用作弊检测,可选的 flag 模版,leet flag 功能
分组队伍得分时间线、分组积分榜
基于 Docker 或 K8s 的动态容器分发、管理、多种端口映射方式
基于 SignalR 的实时比赛通知、比赛事件和 flag 提交监控及日志监控
SMTP 邮件验证功能、基于 Google ReCaptchav3 的恶意注册防护
用户封禁、用户三级权限管理
可选的队伍审核、邀请码、注册邮箱限制
平台内 Writeup 收集、查阅、批量下载
可下载导出积分榜、可下载全部提交记录
比赛期间裁判监控、提交和主要事件日志
题目流量 TCP over WebSocket 代理转发、可配置流量捕获
基于 Redis 的集群缓存、基于 PGSQL 的数据库存储后端
面向 Prometheus / OpenTelemetry 的监控和数据追踪
全局配置项自定义、平台标题、备案信息
以及更多……