看雪·2025 KCTF 征题中!奖品含 2024 Mac mini M4、大疆 DJI Neo 无人机等

2025 KCTF 2025-07-05 18:00 上海

防守方选手看过来

看雪·2025 KCTF 【防守方】规则发布

8月10日截止征题

看雪CTF(简称KCTF)是圈内知名度最高的技术竞技之一,比赛分为两个阶段:

  • 第一阶段是防守篇,防守方根据比赛要求制作题目,根据题目在比赛中的得分评选优胜者。

  • 第二阶段为攻击篇,攻击第一阶段的题目,攻击成功题目后获得相应的攻击得分。累计攻击方在每道题上的攻击得分以获得攻击方总得分,并评选优胜者。

KCTF采取动态积分模式,使每道题的分数随着赛事的发展而变化,比赛结束的分数才能决定最终比赛结果。



2025年规则更新通知:

◆一血加分系数由20%,调整为10%

    2025年4月

   KCTF竞赛组委会


一等奖(攻防双方):2024 Mac mini M4

https://item.jd.com/100151099808.html

二等奖(攻防双方):大疆 DJI Neo 无人机

https://item.jd.com/100134198972.html

三等奖(攻防双方):雷蛇(Razer)黑寡妇蜘蛛V4 X游戏机械键盘

https://item.jd.com/100059266494.html

最佳人气奖(攻防参赛队伍中投票选出):罗技 G703无线游戏鼠标

https://item.jd.com/12555201457.html#crumb-wrap



一、活动时间

防守方出题:2025年4月2日~2025年08月10日防守方题目准备阶段)


攻击方比赛:2025年08月15日~2025年09月15日(截止时间根据攻击方比赛情况而定)

 

二、活动地点

KCTF 官方网站:https://ctf.kanxue.com

三、主办方及支持单位

主办方:


支持单位:


诚邀其它厂商加入有意向合作请邮件至 [email protected]

一、赛事冠名权益(1个名额)

触发条件:提供价值2万元或等额礼品支持。

冠名权益:

-赛事全程将以“看雪·XX 2025 KCTF”形式命名,彰显品牌影响力

-在微信公众号、官网、知乎等看雪官方平台发布贵公司宣传文章

-KCTF官网(https://ctf.kanxue.com)logo展示+链接跳转

二、支持单位权益(名额不限)

触发条件(2选1):

-在官方微信公众号/官网发布活动相关推广文章2篇

-提供不低于500元礼品

支持单位权益:

贵公司logo将在赛事推广显著位置展示,提升品牌曝光度

四、防守方比赛赛制

本届KCTF团队赛为线上赛,由论坛会员自由组成攻、防两方团队,每个团队人数不超过 5人。由防守方出题,攻击方夺旗。

1、 防守方提交题目

参加防守的团队,每个团队需要提供一个防守题目到提交区:KCTF2025提交区(隐藏版块) https://bbs.kanxue.com/forum-122.htm(题目名称请注明2025 KCTF)


评委审核通过后方可作为防守方参赛,审核结果在攻击赛开始前一天公布。

 

2、 赛期

规则:顺序发题、弹性赛期

防守题的赛期根据被破解情况决定,最少1天,最多4天。

一律中午12点发题。发题当天记作第0天。

若第i天上午6点该题被破解次数大于等于5^(3-i),则在第i天中午12点结束该题,发下一题。


解释: 

 发题后的第1天6点,若破解次数少于25人,则继续比赛;  

 发题后的第2天6点,若破解次数少于5人,则继续比赛; 

 发题后的第3天6点,若破解次数少于1人,则继续比赛; 

 以上任意一天继续比赛的条件不满足,就中午12点换下一题;

(6点至12点之间的破解,依然有效) 发题后的第4天中午12点,此题一定结束

3、 积分规则

防守题积分分为难度值积分力值积分精致度积分3种。在所有奖项评选中,若积分相同,则以提交题目时间来排序,最早提交题目的胜出。


攻击方积分是根据其破解战绩而计算得到的。

注:攻击者不能攻击自己提交的题目

3.1 难度系数评估

基本原则


◆根据每道防守题的实际被破解时间、次数和多解,评价每道题的相对难度系数。

◆赛期内被发现多解的扣分,在此题赛期内直接生效。


计算方法


1.每道题的原始难度系数 = - log(k*sigma(1/Bi)/T),其中k是此题被破解的次数,Bi是此题的被破解时间,i从1到k,T是此题赛期(天数);

2.将每道题的原始难度系数线性归一化到[0,1],即得到每道题的原始归一难度系数(此系数将用于攻击方计分);

3.多解难度系数 = 原始难度系数 * (M ^ n),其中M为多解计算系数(87%),其中n为在此题赛期内被发现的多解攻击方团队数量,(n大于5时,视同为5);

4.将每道题的多解难度系数线性归一化到[0,1],即得到每道题的难度系数。(在比赛中,尚未被破解的题(含尚未开始比赛的题),暂计其难度系数为1)。


解释

◆多解定义:多解是指在某个问题或任务中,存在两个或更多个不同的flag,这些flag都能够满足问题或任务的要求;

◆被破解次数越少、被破解时间越长、被发现多解的个数越少、挺得赛期越久的防守题, 其难度系数越大;

◆若被1个攻击方发现多解,则此题多解难度系数 = 原始难度系数*87%;

◆若被2个攻击方发现多解,则此题多解难度系数 = 原始难度系数*87%*87%=原始难度系数*0.7569;

◆若被3个攻击方发现多解,则此题多解难度系数= 原始难度系数*87%*87%*87%=原始难度系数*0.658503;

◆若被4个攻击方发现多解,则此题多解难度系数 = 原始难度系数*87%*87%*87%*87%=原始难度系数*0.57289761;

◆若被5个及以上攻击方发现多解,则此题多解难度系数 = 原始难度系数*87%*87%*87%*87%*87%=原始难度系数*0.4984209207;

◆难度系数是相对值,会随着比赛进行而变化。最简单的题难度系数为0,最难的题为1。比赛结束时将得到每道题的最终难度系数。

3.2 火力值积分

基本原则


◆火力值计分规则鼓励:既具有较高难度又适合于有限赛期的题。难度较高且在赛期之内能够被破解的题,将获得较高火力值积分。


计算方法


1.对每道题,分别计算每个破解者的攻击火力系数 = 此题一血时间 / 此攻击方破解此题的时间。得分在[1,0)之间;

2.对每道题,累计每个破解者的攻击火力系数之和,得到此题累计攻击火力系数,无人破解的题,累计攻击火力系数为0;

3.根据每道题(除签到题以外)的归一化难度系数,计算所有破解者在此题上的火力值 = 此题难度系数 * 累计攻击火力系数 * 100;

4.根据每道题的火力值从高到低排序,评选本届比赛“火力焦点奖”。


解释


◆完全无人破解的题目,火力值为0;

◆(除签到题以外的)最简单的题,其难度系数为0,其火力值也为0;

◆难度较高 且 有多人破解的题,会得高分。

3.3 难度值积分

基本原则


◆难度值计分规则鼓励:破解难度最高的题。他们代表着本届比赛的防守最高水平。


计算方法


1.出题难度值 = (出题基本分(50分) + 难度系数 * 难度加权分(150分)) * (1 + 一血加分系数) ;

2.若无人破解此题,则一血加分系数为10%;若有人破解成功,则一血加分系数为0;

3.根据每道题的难度值从高到低排序,评选本届比赛“最佳坦克奖”;


解释


◆最简单的题的出题难度值是:出题基本分;最难的题是:出题基本分 + 难度加权分;

◆一血的定义是指:题目第一次被破解;若无人拿下此题一血,则此题获得额外10%加分。 

3.4 精致度积分

基本原则


◆精致度计分规则鼓励:难度高且代码短的防守题。精致度反映了一道题的难度密度。

◆题目是以CPU指令构成的,或者用自定义语言编写且自带解释器的,可以参评。

◆用其它解释型语言编写的,不参评。


计算方法


1.防守题原始长度指标 = log(在比赛中供攻击方下载的题目包的文件长度),以Byte为单位。长度不足1024B的,计做1024B;

2.将每道题的原始长度指标线性归一化到[0,1],即得到每道题的长度指标;

3.精致度积分 = 出题基本分(50分) + (难度系数 * (1 - 长度指标))*450;

4.根据每道题的精致度积分从高到低排序,评选本届比赛“精致奖”。


解释


1.具有一定难度且代码较短的题目,会得到较高精致度积分;

2.攻击方下载的题目包:可以是压缩的,压缩格式为ZIP或RAR。由参赛者提供;

3.题目下载包必须包含题目正常运行所需所有文件;

4.比赛规则已经指定了多款OS作为运行平台。若题目需要其它软件支持,必须将其带入到题目包中。例如:题目需要一个特殊的lib,则需要带上这个lib。

3.5 攻击方积分

基本原则


1.攻击方计分规则鼓励:破解高难度题目最多最快的团队。他们代表着本届比赛的攻击最高水平。


计算方法

1.攻击方在某一道题上的得分 = (出题基本分(50分) + 此题原始归一难度系数 * 难度加权分(150分)) * (此题一血时间/此攻击方破解此题的时间 + 1) / 2 * (1 + 一血加分系数);

2.攻击方总积分 = 攻击方在其破解的每道题上的得分之和。


解释


1.若攻击方是此题的一血破解者将获得:此题出题难度值的10%的额外加分。其他破解者无一血加分,且得分依破解时间递减,理论上最少将获得此题出题难度值的一半;

2.如果未破解此题成功,则在此题上不得分;

3.攻击者在某题上的得分,不因此题出现多解而受影响。

五、征题说明

1、征题范围

CrackMe/Reverse(Windows、Android、linux、iOT等)、PWN、WEB、Crypto等相关题目。

注:自2023年起,不接受misc类题型。

 

2、征题数量

将从征集的题目里抽选出一定数量较为优秀的题目来参与KCTF 赛,其他符合规则的题目将录入平台数据库备用。

 

3、征题期限

2025年4月2日~2025年8月10日

 

4、征题要求

A.所有题目必须是原创并且没有公开过。


B.防守方应打包提交以下内容:

团队名称、团长QQ、参赛题目、题目答案(攻击脚本)、详细的题目设计说明和破解思路以及其他需要说明的各个问题。提交资料不完整的不予通过!


C.题目提交到看雪CTF提交区:KCTF2025提交区(隐藏版块)https://bbs.kanxue.com/forum-122.htm(题目名称请注明2025 KCTF)

 

5、题目规则

Android、linux、iOT逆向题的设计规则,请参考Windows逆向题规则。

5.1 关于Window平台CrackMe设计规则

Windows平台题目规则有两个方案,参赛者可以任选一种方案来出题参赛。如果选手采用方案二参赛,必须在提交题目时明确参赛模式,否则默认以方案一模式参赛。


提交格式:

1

2

3

4

5

6

7

8

├─Readme.md------------|题目描述文档

├─Writeup.md-----------|writeup

├─attachments----------|题目文件

├─src------------------|源文件  

└─files----------------|writeup包含的图片等文件

5.1.1  Windows方案一

5.1.1.1 关于注册码

1) CrackMe应有且仅有唯一注册码,除给定的注册码外。如果 CrackMe 被发现多解,则根据积分规则“3.3 难度值积分”扣分。CrackMe的注册码字符集限定为['!','~'],即ASCII码范围是[33,126],共94个可选字符。不允许将注册码绑定硬件ID。

 

2)CrackMe界面

参赛CrackMe界面必须有且仅有注册码输入项,例如类似的(界面仅供参考,可以是控制台):

 


3)CrackMe输入


◆CrackMe在没有被附加调试的情况下运行时,第一次运行时输入正确注册码,必须显示成功提示信息,若是重启验证的,在重启后必须显示。

◆在CrackMe没有被改动且没有被其他程序干扰的情况下,只要输入了注册码,显示了成功信息,则认为该注册码是正确的,否则设计不合理。


4)CrackMe输出显示


◆注册成功,要出现成功提示信息。

◆CrackMe里不允许出现虚假的注册成功提示信息。

5.1.1.2  算法规则

1)不鼓励穷举


◆在当前技术条件下,序列号从理论上讲,是可逆或可求出来的;

◆如果破解者必须通过穷举才能得到注册码的,设计文档里一定要描述清楚,并且将穷举代码和程序发给评委验证。评委验证时,在当前主流硬件配置条件下,如果穷举时间超过30分钟则不通过。

◆如果在当前主流硬件配件条件下,CrackMe的启动时间超过10秒也不通过,需要返回修改。


2)其他限制条件


◆参赛 CrackMe 必须可以在 WIN11/64、WIN11/32、WIN10/32、WIN10/64 、WIN7/32、WIN7/64、WINXP其中一种系统正确运行。 

◆参赛 CrackMe 不可使用第三方保护工具来保护CrackMe,例如第三方壳和VM。

参赛 CrackMe不可使用VM来保护,包括第三方VM和自己写的VM(注:若要用自己实现VM参赛,请按 5.2.2方案二 规则提交题目)。

◆参赛CrackMe执行后,不能干扰破解者正常使用电脑(比如关闭显示器、禁用键盘鼠标、关机、暴力占用内存cpu资源使电脑死机、破坏电脑文件等类似操作不允许),但允许采用技术手段关闭调试器,防止破解者破解。

◆参赛CrackMe设计的总体原则是绿色安全,不可含木马或 rootkit,没有任何危险或恶意程序,不能对系统进行破坏,可以正常结束,结束后不能给系统留下垃圾(比如临时文件要删除,驱动要卸载干净),不可使系统重启。

◆参赛CrackMe如果有任何危险或者恶意行为,ban ID。如果有杀软或者360等安全软件报CrackMe有异常的行为,评委有权要求参赛选手解释。

◆参赛CrackMe 不可以联机到网络,或使用服务器注册,CrackMe必须可以在单机运行。

◆所提交的参赛CrackMe运行的文件包括.exe.dll.sys等一起在不打包压缩时总大小不超过1M。

◆如果评审有怀疑,例如怀疑加壳伪装,可以要求队伍提供CrackMe 的源码。

◆如果评审认为 CrackMe 使用了不合理的设计,或违反比赛精神,便会判定CrackMe无效,取消奖品和名次,并把参赛者提交的技术文件,在论坛公开,让会员公开讨论。

5.2.2  Windows方案二

5.2.2.1 关于用户和序列号

1)防守方发布的Crackme应允许输入用户名和序列号,并提示用户名和序列号是否匹配正确。例如类似的(界面仅供参考,可以是控制台):

 

2)用户名和序列号要求


◆防守方在发布CrackMe时,应向大众公开一组用户名和序列号,即 “ Name/Serial ”。

◆其中公开的这个用户名“Name“,必须是该CrackMe文件的 hash值。

◆hash算法指定为SHA256,用户名为hash结果的前64bit的16进制大写文字。

◆如果CrackMe不止一个文件的话,计算hash时应包含CrackMe的所有文件(第三方共享库除外)。参考hash计算工具:3b1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6W2L8h3^5I4y4K6S2Q4x3X3g2Y4K9i4c8Z5N6h3u0Q4x3X3g2A6L8#2)9J5c8X3!0F1L8r3W2F1k6g2)9J5k6s2c8G2L8$3I4K6i4K6u0r3M7$3S2S2x3U0f1$3i4K6g2X3j5$3S2W2j5$3E0K6N6h3#2Q4x3X3g2Z5N6r3#2D9


B)判胜条件


◆  若攻击方找出特定用户名(“KCTF”,不含引号) 的序列号,经KCTF系统自动确认,将认定攻击方获胜;

◆  若攻击方找出特定用户名(“KCTF”,不含引号) 的第二个序列号,经KCTF官方确认,将认定攻击方获胜,且此题多解;


 

C)规则限制


◆ 干净环境中,当前主流硬件配置环境下,10秒内出提示且不能虚假提示。

◆ KeyGen算法不能基于“未在CrackMe中公开的秘密信息”;如果需要穷举,则穷举时间在目前主流机型中必须小于30分钟。

◆ 不能依赖网络、不能依赖硬件。

◆ 禁止使用第三方保护工具、禁止恶意破坏机器。

◆参赛 CrackMe 允许用自己未公布的壳或VM或其他手工处理的方法来保护程序(VM或壳的嵌套最多2层),但必须将保护该CrackMe所使用的壳或VM或其他手工处理的方法与CrackMe一同提交,评委审核通过后方可参赛。所提交的壳或VM[程序和源码]或其他手工处理的方法将在赛后向广大会员公开。凡违反该比赛规则的CrackMe将作废,设计该CrackMe的会员将取消本届比赛的参赛资格。

◆所提交的参赛CrackMe运行的文件包括.exe.dll.sys等一起在不打包压缩时总大小不超过10M;

◆同一用户名不应有多个序列号,否则根据积分规则“3.3 难度值积分”扣分 

◆禁止在Crackme中为特定用户名(“KCTF”)设立独立验证路径,以绕开hash用户名的验证路径 。

◆序列号字符集限定为['!','~'],即ASCII码范围是[33,126],共94个可选字符。

◆不限制使用套娃。可以使用任何数据和代码变换。

◆不限制线索隐藏方式。可以将线索以任何形式置于CrackMe的任何位置。

5.2 关于Android/iOS平台CrackMe设计规则

参考5.1Windows平台规则(规则一和规则二),确保CrackMe能在常见移动端稳定运行。

 

5.3 关于PWN的设计规则

CTF中的pwn是一个关于二进制漏洞挖掘与利用的方向。通过对二进制程序进行逆向分析,挖掘程序中存在的漏洞并进行漏洞利用,最终获取目标主机的shell或读取flag。

5.3.1  题目规则

1)规则


◆设计一个存在漏洞的程序。

◆漏洞包括不限于堆栈溢出、UAF、DOUBLE FREE、OFF BY ONE、格式化、逻辑错误等漏洞。

◆提供稳定的漏洞利用EXP,攻击者根据漏洞攻击成功后能获得flag,flag格式flag{***}。

◆题目以docker形式提交,并提供详细的部署方法。


2)其他限制条件


◆尽量不要出带有爆破,猜测的题目,避免比赛选手使用爆破工具给服务器带来较大压力;

◆控制解题流程,避免非预期;

◆带有文件上传或者代码执行的题目控制好权限,避免环境被破坏。

◆Pwn文件允许用自己未公布的壳或VM或其他手工处理的方法来保护程序(VM或壳的嵌套最多2层),但必须将保护该Pwn文件所使用的壳或VM或其他手工处理的方法与Pwn附件一同提交,评委审核通过后方可参赛。所提交的壳或VM[程序和源码]或其他手工处理的方法将在赛后向广大会员公开。凡违反该比赛规则的Pwn题将作废,设计该Pwn题的会员将取消本届比赛的参赛资格。

◆Pwn主文件尺寸不超过10M;

5.3.2 提交格式:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

├─Readme.md--------------|题目描述文档

├─Writeup.md-------------|writeup

├─exp--------------------|解题关键脚本

├─attachments------------|题目文件

├─deploy-----------------|online型题目部署脚本

│  └─docker_for_pwn-------|pwn题示例

│     │  Dockerfile

│     │  xctf.xinetd

│     │

│     └─bin

│             pwn

│             flag

│   

└─files----------------|writeup包含的图片等文件


◆dockerfile: 基于官方 docker 镜像生成后需要部署的内容,并且暴露对应端口使用;

◆attachments:提供给选手分析使用的相关文件。

5.3.2  公开给选手文件

◆提供题目可运行docker或者全部文件,包括Dockerfile、attachments等。

5.4 关于智能硬件PWN设计规则

题目设计规则:


◆设计一个可以运行于模拟器如qemu中基于uboot的arm32位程序。

◆该程序能够通过uboot引导并稳定执行。

◆该程序可设计为存在漏洞程序、crackme程序等。

◆参赛者可以解题成功后获得flag{*********}。

◆设计者需提供可以运行设计程序的qeum版本信息、以及让uboot成功运行起来的必要信息(如模拟的目标板、内存等等)。

◆设计者还需要提供已经设计好的uboot二进制文件、比赛程序、以及解题思路及答案。

5.5 关于WEB题目设计规则

1)规则


◆设计一个存在WEB漏洞的WEB程序

◆漏洞包括不限于注入、命令执行、文件上传等漏洞

◆攻击者根据漏洞攻击成功后能获得flag,flag格式flag{***}

◆题目以docker形式提交,并提供详细的部署方法。

◆WEB题不参与精致奖评定。


提交格式:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

│  Readme.md-------------|题目描述文档

│  Writeup.md------------|writeup

├─attachments------------|题目文件

├─deploy-----------------|online型题目部署脚本

│  │

│  └─docker_for_web-------|web题示例

│      │  Dockerfile

│      │  run.sh

│      │

│      └─bin

│              index.php

└─files----------------|writeup包含的图片等文件


2)其他限制条件

◆尽量不要出带有爆破,猜测的题目,避免比赛选手使用爆破工具给服务器带来较大压力;

◆控制解题流程,避免非预期;

◆带有文件上传或者代码执行的题目控制好权限,避免环境被破坏。

5.6 关于crypto题目设计规则

密码学方向的考题在CTF中被归为Crypto类型,找出隐藏在密码学算法中的flag。

六、评委团队

评委成员:kanxue、gjden、Editor

七、奖项

本次比赛防守方共设置4类奖项:


◆最能抗的:最佳坦克奖

◆实际吸收伤害最多的:火力焦点奖

◆题目短小并且最能抗的:精致奖

◆人气最旺的:最佳人气奖


注意:

防守方奖项设3类:最佳坦克奖、火力焦点奖、精致奖

*奖品价值:最佳坦克奖>火力焦点奖>精致奖

同一战队获奖类型,不可重复。若已获得靠前类别奖项,则不参与后续的评定。

*解释:
若获得最佳坦克奖,则不参与火力焦点奖、精致奖评定;

若获得火力焦点奖,则不参与精致奖评定;

同时,该类别奖项将按名次顺延给下一战队。

最佳坦克奖:

解释:根据防守方获得的“3.3难度值积分”进行排名,取第1名。

火力焦点奖:

解释:根据防守方获得的“3.2 火力值积分”进行排名,取第1名。

精致奖:

解释:根据防守方获得的“3.4 精致度积分”进行排名,取第1名。

幸运奖

防守方(未得奖战队)+攻击方(4-10名)

最佳人气奖

评选对象:看雪·2025 KCTF 参赛战队(包含防守方所有战队+攻击方前20名战队)

评选方式:登陆看雪账号,并为喜欢的战队投票,每支战队可投一票。

投票时间:比赛结束后一周内

八、致谢

感谢版主【看场雪】设计KCTF比赛规则及积分排行


KCTF 2025 组委会

2025/04/10


关于KCTF

2025

看雪CTF(简称KCTF)是圈内知名度最高的技术竞技之一,从原CrackMe攻防大赛中发展而来,采取线上PK的方式,规则设置严格周全,题目涵盖Windows、Android、iOS、Pwn、智能设备、Web等众多领域。   

KCTF比赛历史悠久、影响广泛。自2007年以来,看雪已经举办十多个比赛,与包括金山、腾讯安全、腾讯TSRC、360、阿里、京东、WiFi万能钥匙、安恒、深信服、众安科技等在内的各大公司共同合作举办赛事。比赛吸引了国内一大批安全人士的广泛关注,历年来CTF中人才辈出,汇聚了来自国内众多安全人才,高手对决,精彩异常,成为安全圈的一次比赛盛宴,突出了看雪论坛复合型人才多的优势,成为企业挑选人才的重要途径,在社会安全事业发展中产生了巨大的影响力。


球分享

球点赞

球在看

点击阅读原文查看更多

阅读原文

跳转微信打开

原始链接: https://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458596724&idx=1&sn=16d54bc0bb8e3266b645993cc5cc7560
侵权请联系站方: [email protected]

相关推荐

换一批