比赛管理
入口:「管理后台 → 比赛管理」,对应 /platform/#/admin/contests。点击比赛进入该比赛的管理空间。
创建与发布
- 创建比赛,填写名称、介绍、开始时间和结束时间。
- 设置 Flag 前缀、队伍人数、每队靶机上限、三血奖励及是否隐藏。
- 如需限制报名,在「比赛验证码」填写字符串。它用于创建队伍;加入已有队伍使用队伍自己的邀请码。
- 配置规则列表、奖项和展示时间线。时间线中的“题解截止”等文字仅用于展示,不会自动创建截止规则或定时动作。
- 在「题目」页加入全局题库中的题目,配置分数并取消题目隐藏。
- 取消比赛隐藏,使用普通选手账号检查报名、题目可见性与提交。
比赛按时间自动进入未开始、进行中、已结束状态。公开比赛与公开题目是两个独立操作;新加入比赛的题目默认隐藏。隐藏比赛不等于“持链接即可访问的邀请赛”。
比赛封面上传会立即保存,编辑页取消操作不会撤销已经上传的封面。其他基础信息需要保存。
比赛题目与计分
在题目选择器中筛选并跨页勾选题目,确认添加后再编辑比赛题目。若只添加成功一部分,查看逐项结果后重试剩余题目。
- 可编辑名称、描述、标签、提示、隐藏状态和提交次数(
0为不限制)。分类沿用添加时的题库分类。 - 每个 Flag 分别设置内容、计分方式、初始分值、最低分值和衰减参数。
- 单独保存的 Flag 会立即生效,关闭或取消题目编辑不会撤销。「保存更改」可一并保存尚未保存的 Flag 和题目信息。
- 加入时的计分初值为静态分
1000、最低分100、衰减参数100,应按比赛规则主动设置。
队伍与公告
「队伍」页支持搜索、查看成员、提交记录、团队 Flag、题解和靶机历史;编辑队伍可修改名称、描述、队长、邀请码、隐藏及封禁状态。队长必须是队内成员。
隐藏影响展示,封禁影响参赛操作;确认作弊记录不会自动替代队伍封禁,需另行操作。「公告」页可创建、修改和删除公告,选手在比赛公告页查看。
镜像、生成器与靶机预热
这三种操作的作用不同:
批量启动按所选题目和队伍比例随机抽取已有队伍,已解题或已有实例的项目可能跳过。提交后查看运行状态,等待实例就绪再访问。部分失败时可展开结果查看原因;再次启动会重新随机选择队伍。
停止时勾选需要关闭的运行中实例,再确认操作。部分停止失败时,列表会保留剩余选择供核对和重试。更多状态说明见工作负载调度。
排行榜与赛后题解
- 在排行榜查看队伍总分、各题解出情况,并切换时间线查看分数变化。
- 在队伍详情查看、下载单队题解,或使用比赛题解导出功能下载整场 ZIP。
- 选手上传格式为 PDF、DOC、DOCX;比赛开始后即允许上传。展示时间线中的截止时间不自动禁止上传。
- 启用抓包时,在靶机流量详情查看连接与下载抓包产物;未启用抓包的实例没有这些文件。
主要权限
比赛管理使用 admin:contest:*;比赛题目使用 admin:contest_challenge:*,Flag 使用 admin:contest_challenge_flag:*。比赛范围的镜像、靶机、生成器分别使用 admin:contest_image:pull、admin:contest_victim:control、admin:contest_generator:control,不要与全局权限混淆。
题解列表/下载使用 admin:team_writeup:list/read,整场导出使用 admin:contest_writeup:export。完整权限名称可在后台「权限」页查看。
