CTF 比赛形式

目前比较常见的比赛形式有两类

  • 解题模式 Jeopardy
  • 攻防模式 Attank & Defense

解题模式 Jeopardy 🕔

解题模式(Jeopardy)常见于线上选拔比赛。在解题模式 CTF 赛制中,参赛队伍可以通过互联网或者现场网络参与,参数队伍通过与在线环境交互或文件离线分析,解决网络安全技术挑战获取相应分值,类似于 ACM 编程竞赛、信息学奥林匹克赛,根据总分和时间来进行排名。

不同的是这个解题模式一般会设置 一血二血三血 ,也即最先完成的前三支队伍会获得额外分值,所以这不仅是对首先解出题目的队伍的分值鼓励,也是一种团队能力的间接体现。

当然还有一种流行的计分规则(动态分数)是设置每道题目的初始分数后,根据该题的成功解答队伍数,来逐渐降低该题的分值,也就是说如果解答这道题的人数越多,那么这道题的分值就越低。最后会下降到一个保底分值后便不再下降。

题目类型

目前题目主要包含:

  • Web 网络攻防
  • RE 逆向工程
  • Pwn 二进制漏洞利用
  • Crypto 密码攻击
  • Misc 安全杂项

当然随着时代的发展,技术的进步,网络安全所面临的攻击面越来越广,所以有些比赛设置了以下类型的题目:

  • IOT 物联网
  • Mobile 移动安全
  • . . . . . .

    攻防模式 Attank & Defense 🥊

    攻防模式常见于线下决赛。在攻防模式中,初始时刻,所有参赛队伍拥有相同的系统环境(包含若干服务,可能位于不同的机器上),常称为 gamebox,参赛队伍挖掘网络服务漏洞并攻击对手服务获取 flag 来得分,修补自身服务漏洞进行防御从而防止扣分(一般来说防御只能避免丢分,当然有的比赛在防御上可以得分)。

基本规则

攻防模式一般的规则如下

  • 战队初始分数均为 x 分
  • 比赛以 5/10 分钟为一个回合,每回合主办方会更新已放出服务的 Flag
  • 每回合内,一个战队的一个服务被渗透攻击成功(被拿 Flag 并提交),则扣除一定分数,攻击成功的战队平分这些分数。
  • 每回合内,如果战队能够维护自己的服务正常运行,则分数不会减少(如果防御成功加分则会加分);
  • 如果一个服务宕机或异常无法通过测试,则可能会扣分,服务正常的战队平分这些分。往往服务异常会扣除较多的分数。
  • 如果该回合内所有战队的服务都异常,则认为是不可抗拒因素造成,分数都不减少。
  • 每回合内,服务异常和被拿 Flag 可以同时发生,即战队在一个回合内单个服务可能会扣除两者叠加的分数。
  • 禁止队伍使用通用防御方法
  • 请参赛队伍在比赛开始时对所有服务进行备份,若因自身原因导致服务永久损坏或丢失,无法恢复,主办方不提供重置服务
  • 禁止对赛题以外的比赛平台发起攻击,包括但不限于在 gamebox 提权 root、利用主办方平台漏洞等,违规者立刻被取消参赛资格
  • 参赛队伍如果发现其他队伍存在违规行为,请立刻举报,我们会严格审核并作出相应判罚。

常见网络拓扑

image.png

访问 Gamebox

参赛文档中会给出队伍登录 gamebox 的方式,一般来说如下

  • 用户名为 ctf
  • 一般会通过 ssh 登录,登录方式为密码或者私钥。

CTF 赛事

国内

国内的赛事按照主办方性质分为两类(以下排名不分先后)


  • 网鼎杯
  • 陇剑杯
  • CISCN
  • 天府杯
  • 强网杯

等等……