题目类型
CBCTF 支持三种题目类型,覆盖从传统静态题到复杂网络靶机的完整场景。
类型概览
静态题(static)
静态题为最简单的 CTF 传统题型,题目附件和 flag 对所有队伍相同。
- 上传静态附件,所有队伍共享下载
- flag 使用
static{}类型(所有队伍相同),也支持leet{}和uuid{}(每队不同,但无法通过附件向选手传达个人 flag) - 不需要 Kubernetes
动态附件题(dynamic)
动态附件题为每支队伍独立生成附件,通常配合动态 flag 使用,防止抄答案。
- 需要出题人编写生成器 Docker 镜像,平台在 Kubernetes 中运行生成器容器
- 附件按队伍独立生成,每支队伍下载不同的 zip
- flag 类型支持
static{}、leet{}、uuid{} - 需要 Kubernetes 集群
详见动态附件生成。
容器题(pods)
容器题为每支队伍部署独立的靶机容器,由出题人编写 docker-compose.yaml 配置。
- 每队拥有独立的容器实例,互不干扰
- 支持 Pod 网络模式(简单多容器)、VPC 网络模式(复杂网络拓扑)和 KubeVirt VM 模式
docker-compose.yaml支持 service 级扩展字段x-kubevirt: true,用于标记该 service 按 KubeVirt VM 配置处理;可配合x-boot和x-cloudinit传递启动与 cloud-init 字段配置- flag 通过环境变量或文件 volume 注入容器
- 需要 Kubernetes 集群(VPC 模式还需要 Kube-OVN + Multus,VM 模式还需要 KubeVirt)
详见动态靶机。
题目测试模式
管理员可在将题目加入比赛之前,通过题目测试模式启动/停止容器靶机进行验证,无需创建队伍。
