GZTimeWalker/GZCTF
GitHub: GZTimeWalker/GZCTF
GZCTF 是一个基于 ASP.NET Core 的开源 CTF 竞赛平台,支持动态容器分发、动态计分及多语言国际化,适用于高校及企业举办各类网络安全赛事。
Stars: 1477 | Forks: 167
# GZ::CTF
[](https://github.com/GZTimeWalker/GZCTF/actions/workflows/ci.yml)


[](https://crowdin.com/project/gzctf)
[](https://codecov.io/gh/GZTimeWalker/GZCTF)
[](https://telegram.dog/gzctf)
[](https://jq.qq.com/?_wv=1027&k=muSqhF9x)
[](https://discord.gg/dV9A6ZjVhC)
[English](./README.md), [简体中文](./README.zh.md), [日本語](./README.ja.md)
GZ::CTF 是一个基于 ASP.NET Core 的开源 CTF 平台。
## 功能 🛠️
- 创建高度可定制的题目
- 题目类型:静态附件、动态附件、静态容器、动态容器
- 静态附件:共享附件,接受任何已配置的 flag。
- 动态附件:flag 和附件的数量必须至少等于队伍数量。附件和 flag 根据队伍进行分配。
- 静态容器:共享容器模板,不发放动态 flag,可提交任何已配置的 flag。
- 动态容器:通过容器环境变量自动生成并发放 flag,每个队伍的 flag 是唯一的。
- 动态计分
- 分数曲线:
$$f(S, r, d, x) = \left \lfloor S \times \left[r + ( 1- r) \times \exp\left( \dfrac{1 - x}{d} \right) \right] \right \rfloor $$
其中 $S$ 为原始分数,$r$ 为最低分数比例,$d$ 为难度系数,$x$ 为提交次数。前三个参数可以自定义,以满足大多数动态计分需求。
- 前三解奖励:
平台分别为前三解奖励当前分数的 5%、3% 和 1%。
- 在比赛期间禁用或启用题目,并随时发布新题目。
- 动态 flag 共享检测,可选 flag 模板,leet flag
- **队伍**得分时间轴、记分板。队伍可分组
- 基于 **Docker 或 K8s** 的动态容器分发、管理及多端口映射方式
- 基于 SignalR 的**实时**比赛通知、比赛事件和 flag 提交监控,以及日志监控
- SMTP 邮件验证,基于 Cloudflare Turnstile 的恶意注册防护
- 封禁特定用户,三级用户权限管理
- 可选的队伍审核、邀请码、注册邮箱限制
- Writeup 收集、审核和平台内批量下载
- 下载导出的记分板,导出所有提交记录
- 比赛期间监控提交和主要事件日志
- 基于 **TCP over WebSocket 代理**的题目流量转发,可配置流量捕获
- 基于 Redis 的集群缓存,基于 PGSQL 的数据库存储后端
- 基于本地磁盘和**对象存储(MinIO、S3 等)**的存储后端
- 可自定义全局配置、平台标题、记录信息
- 支持**深色模式**、多语言和自定义主题
- 可自定义**网站页脚**、**网站图标**和用于 SEO 的 **html 描述**
- 支持指标和分布式追踪
- 以及更多...
## 关于国际化 🌐
目前,平台支持多种语言,翻译进度如下:
### 社区翻译
- 英语 (en-US):完全支持,**默认语言**
- 简体中文 (zh-CN):完全支持
- 繁体中文 (zh-TW):完全支持
- 日语 (ja-JP):完全支持,由 [Steve](https://github.com/hez2010) 翻译
- 印尼语 (id-ID):完全支持,由 [Rio](https://github.com/riodrwn) 翻译
- 韩语 (ko-KR):完全支持,由 [Sy2n0](https://github.com/Sy2n0)、[kimjw0427](https://github.com/kimjw0427)、[LittleDev0617](https://github.com/LittleDev0617)、[Jungwoong Kim](https://github.com/jungwngkim) 和 [blluv](https://github.com/blluv) 翻译
- 俄语 (ru-RU):完全支持,由 [FazaN](https://github.com/CyberFazaN) 翻译
- 越南语 (vi-VN):完全支持,由 [Ethical Hacker Club](https://github.com/FPTU-Ethical-Hackers-Club) 翻译
### 机器和 AI 翻译
- 德语 (de-DE)
- 法语 (fr-FR)
- 西班牙语 (es-ES)
这些翻译并不完美,我们需要您的帮助来改进它们。
如果您有兴趣参与翻译,请参考 [Crowdin 项目](https://crowdin.com/project/gzctf)。
## 演示 🗿















## 使用 GZ::CTF 举办的 CTF 🏆
一些赛事组织者已经选择了 GZCTF 并成功完成了他们的比赛。他们的信任、支持和及时反馈是 GZCTF 持续改进的主要动力。
### 国际赛事
- [**San Diego CTF 2024: 由加州大学圣地亚哥分校举办**](https://ctftime.org/event/2325)
- [**R3CTF 2024: 由 r3kapig 举办**](https://ctftime.org/event/2273)
- [**TCP1P CTF 2024: 探索努桑塔拉的数字领域**](https://ctftime.org/event/2256/)
### 其他赛事
- **THUCTF 2022:清华大学网络安全技术挑战赛**
- **ZJUCTF 2022/2023/2024:浙江大学 CTF**
- **SUSCTF 2022/2023/2024:东南大学虎踞龙蟠杯网络安全挑战赛**
- **DIDCTF 2022/2023/2024:甘肃政法大学 CTF**
- **W4terCTF [2023](https://github.com/W4terDr0p/W4terCTF-2023)/2024:中山大学信息安全新手赛**
- **ZJNUCTF [2023](https://github.com/A1natas/zjnuctf-school-contest-2023)/[2024](https://github.com/A1natas/zjnuctf-school-contest-2024):浙江师范大学 CTF**
- **Woodpecker:山东科技大学首届网络安全实践竞赛**
- **NPUCTF 2022:西北工业大学 CTF**
- **SkyNICO 网络空间安全三校联赛(厦门理工学院、福建师范大学、齐鲁工业大学)**
- **湖南警察学院网络安全攻防竞赛**
- **TongjiCTF 2023:同济大学第五届网络安全竞赛**
- **CatCTF 2023/2024:同济大学网络安全竞赛(初级)**
- **CTBUCTF 2023:重庆工商大学首届网络安全竞赛**
- **NPUCTF 2023 - 西北工业大学首届安全实验技能竞赛**
- **XZCTF 2023:浙江师范大学行知学院首届网络安全新手赛**
- **ORGCTF 2023:哈尔滨工程大学工程杯新生赛**
- **SHCTF 2023:“山河”网络安全技能挑战赛**
- **天津科技大学 2023 大学生创客训练营网络安全组选拔赛**
- **HYNUCTF 2023:湖南衡阳师范学院玄天网络安全实验室招新赛**
- **NYNUCTF S4:南阳师范学院玄天网络安全实验室招新赛**
- **商丘师范学院首届网络安全新生挑战赛**
- **SVUCTF-WINTER-2023:苏州职业大学 2023 冬季新生赛**
- **BIEM CTF 2024:北京经济管理职业学院 - 首届 BIEM“新安杯”CTF 竞赛**
- **BUAACTF 2024:北京航空航天大学 CTF**
- **曲阜师范大学首届“Qu STAR”网络安全技能竞赛**
- **DinoCTF:成都理工大学第 4 届及第 5 届信息安全竞赛**
- **RedrockCTF 2024:重庆邮电大学信息安全新手赛**
- **WAXFCTF 2024:重庆安全技术职业学院“先锋杯”网络安全技能竞赛**
- **ZGCTF 2025:许昌学院第三届“灼光杯”信息安全竞赛**
_此列表不分先后顺序,欢迎 PR 补充。_
## 许可证 📄
GZCTF 采用双重许可:
1. **核心源代码**:根据 **GNU Affero General Public License v3.0 (AGPLv3)** 许可。这涵盖了项目的主要部分,授予您广泛的使用、修改和分发自由。详情请参阅 `LICENSE.txt`。
2. **受限组件**:根据自定义的 **GZCTF 受限许可证** (`LicenseRef-GZCTF-Restricted`) 许可。
- **允许使用和分发**:您可以自由使用和重新分发这些组件(未经修改),前提是保留所有版权声明和许可文本。
- **禁止修改和删除**:未经作者的明确书面许可,您**不得修改、删除、创建衍生作品或反向工程**这些组件。
- **文件列表**:受限组件的完整列表定义在 `PROPRIETARY_COMPONENTS.md` 文件中。
- **完整许可文本**:详细条款请参阅 `license/LicenseRef-GZCTF-Restricted.txt`。
当将 GZCTF 的**修改版本**作为公共服务部署时,您必须:
- 在显著位置(例如网站页脚)保留原始版权和归属信息。
- 声明所使用的 GZCTF 版本及其许可证。
- 提供指向原始仓库和原始许可文本的链接。
### 商标与品牌
- “GZCTF” / “GZ::CTF” 名称、徽标及相关品牌资产是作者的商标。
- 使用受 `TRADEMARKS.md` 管辖。允许描述性引用(例如,“Forked from GZCTF”),但不得暗示官方认可。
另请参阅 `NOTICE` 文件以获取汇总的版权和商标声明。
## Stars ✨
[](https://starchart.cc/GZTimeWalker/GZCTF)
标签:ASP.NET Core, IPv6支持, OPA, Web安全, WSL, 动态flag, 动态容器, 夺旗赛, 子域名突变, 安全竞赛, 开源平台, 搜索引擎查询, 比赛平台, 测试用例, 积分算法, 网络安全, 自动评分, 蓝队分析, 请求拦截, 隐私保护, 静态容器, 靶场, 题目管理