2020年KCTF 春季赛 防守方正在紧张进行中
各位选手摩拳擦掌,快来迎接比赛吧!
这个春天,攻防对抗让你嗨翻天!
防守方的战队们
在KCTF自由开放的比赛环境下
本届春季赛的赛题背景将全权交由战队自主设计
为激发大家的灵感
CTF组委会特设置十二生肖的背景
你可选择自己喜欢的生肖
编写属于你们战队的专属小故事!
快来脑洞大开吧!
总赛题背景:
混沌初开,乾坤始奠,气之轻清上升者为天,气之重浊下凝者为地。
天地之间,万物皆有灵气。
适时,十二生肖始出,作为守护人间时序的大将昼夜游行,周而复始。
然而,这片大地上从来没有永远的安宁。
在这里以“鼠”为例给大家展示第一道赛题背景:
第一题
子鼠开天
天地之初,混沌未开,鼠以一己之力用钢牙铁齿咬开黑暗,形成世界。
虽身材矮小,看似瘦弱,但其貌不扬的外表下隐藏着巨大的力量。
一时间“一日时辰子为首,十二生肖鼠占头。”让鼠作为十二生肖的第一大将占尽风头。
然而,风光总不会长久。
伴随光荣而来的还有污蔑和诽谤。
暗夜里守护时辰秩序的鼠将默默付出,却被有心人污名化:偷吃窃钱,贪得无厌。
云雾飘渺间,战神“鼠”立于高山之上,它并不把这些传言放在心里,炯炯有神地注视着前方。
职责所在,纵使以身赴火,也在所不辞。
2020年KCTF赛季新变化:
2020年 KCTF分为两个场次:
2020年04月15日
2020 KCTF 春季赛
攻击篇开始;
2020年10月15日
2020 KCTF 秋季赛
攻击篇开始。
2020 KCTF 春季赛 防守方规则
一、活动时间
2020年1月20日~4月14日(防守方题目准备阶段)
https://bbs.pediy.com/thread-257321.htm
2020年4月15日
~5月15日 (攻击方时间段)https://bbs.pediy.com/thread-258575.htm
二、活动地点
看雪CTF 官方网站:https://ctf.pediy.com/
三、主办方
看雪学院: https://www.kanxue.com
合作伙伴:虚位以待
四、防守方比赛赛制
本届看雪CTF团队赛为线上赛,由论坛会员自由组成攻、防两方团队,每个团队人数不超过 5人。由防守方出题,攻击方夺旗。
1、
防守方提交题目
参加防守的团队,每个团队需要提供一个防守题目到题库:https://ctf.pediy.com/itembank-contribute.htm (题目名称请注明2020 KCTF)。评委审核通过后方可作为防守方参赛,审核结果在攻击赛开始前一天公布。
2、 赛期
规则:顺序发题、弹性赛期
防守题的赛期根据被破解情况决定,最少1天,最多4天。
一律中午12点发题。发题当天记作第0天。
若第i天上午6点该题被破解次数大于等于3^(3-i),则在第i天中午12点结束该题,发下一题。
解释:
发题后的第1天6点,若破解次数少于9人,则继续比赛;
发题后的第2天6点,若破解次数少于3人,则继续比赛;
发题后的第3天6点,若破解次数少于1人,则继续比赛;
以上任意一天继续比赛的条件不满足,就中午12点换下一题;
(6点至12点之间的破解,依然有效)
发题后的第4天中午12点,此题一定结束。
3、 积分规则
3.1 基本原则
1)根据防守题在赛期内 被破解的次数和时间,计算防守题的难度分,进而得到防守方得分。
2)根据攻击方破解的题目的难度分和破解时间,计算攻击方得分。
3)防守题难度分是根据攻击方提交flag的情况而更新的,以体现各题之间的相对难度。因此每道题的分数都可能随着赛事的发展会发生变化。比赛结束时的分数将决定最终比赛结果。
3.2 计算方法
3.2.1
防守题难度分 = 出题基本分(50分)+难度系数
×
难度加权分(150分)
1)每道题的原始难度系数 = - log(k*sigma(1/Bi)/T),其中T是此题赛期(天数),k是此题被破解的次数,Bi是此题的被破解时间,i从1到k。
2)将每道题的原始难度系数线性归一化到[0,1],即得到每道题的难度系数。(在比赛中,尚未被破解的题(含尚未开始比赛的题),暂计其难度系数为1)
3) 解释:
i. 被破解次数越少、被破解时间越长、挺得赛期越久的防守题, 其难度系数越大。
ii. 最简单的题难度系数为0,最难的题为1。
iii. 最简单的题的难度分是:出题基本分;最难的题是:出题基本分 + 难度加权分
3.2.2 一血加分 = 防守题难度分 × 一血加权系数(20%)
1)解释:
i. 一血的定义是指,题目第一次被破解。
3.2.3 攻击方得分 = 攻击方在其破解的每道题上的得分之和
1) 攻击方在某一道题上的得分 = 此题难度分 × (此题一血时间/此攻击方破解此题的时间+1)/2 ;若此攻击方是此题的一血破解者,则额外获得一血加分
2) 解释:
i. 此题的一血破解者将获得:此题难度分 + 一血加分
ii. 其他破解者无一血加分,且得分依破解时间递减,理论上最少将获得此题难度分的一半。
iii. 如果未破解成功,则不得分。
3.2.4 防守方得分 = 防守题难度分
1)若比赛结束时还无人破解,则额外获得一血加分。
3.2.5 多解罚分 = 此题难度分 × 多解罚分系数(20% )。如果防守题被发现多解,则给防守方1次修改机会,并扣多解罚分。若修改后又多解,则下线退赛,攻击方在此题获得的成绩保留不受影响。
4、 评选最受欢迎奖
比赛后,看雪KCTF比赛官网上发起投票,单独的奖品,获奖者可受邀在看雪峰会上分享经验。
1)被投票的是赛题,可选的是:顶/踩/还行
匿名投票
每人每题只能投1票,默认:还行
2)至少破解本届比赛的一道题的看雪会员,可以参与投票
3)投票后看雪公布:实际参与投票的人数 和 每题获得的票数
根据票数,选出当届最受欢迎的题,予以单独奖励(与比赛成绩无关)
顶:+2分
还行:+1分
踩:+0分
投票的原因可以是(但不限于):赛题有难度、有趣、有值得学习的知识、题型新颖、crackme特别短、题的名字起得好、作者长得帅......
投票时,无需注明原因
喜欢就顶、不喜欢就踩,不想评价就默认
五、征题说明
1、征题范围
PWN、CrackMe(Windows、Android)、WEB、智能硬件等相关题目。
2、征题数量 将从征集的题目里抽选出一定数量较为优秀的题目来参与看雪CTF 2019团队赛,其他符合规则的题目将录入平台数据库备用。
3、征题期限
2020年1月20日~4月14日
4、征题要求
A. 所有题目必须是原创并且没有公开过。
B. 防守方应打包提交以下内容:
团队名称、团长QQ、出题者联系电话、参赛题目、题目答案(攻击脚本)、详细的题目设计说明和破解思路以及其他需要说明的各个问题。提交资料不完整的不予通过!
C. 题目提交到题库:https://ctf.pediy.com/itembank-contribute.htm (题目名称请注明2020 KCTF)
5、题目规则
5.1 关于PWN的设计规则
设计一个存在漏洞的程序。
漏洞包括不限于堆栈溢出、UAF、DOUBLE FREE、OFF BY ONE、格式化、逻辑错误等漏洞。
提供稳定的漏洞利用EXP,攻击者根据漏洞攻击成功后能获得flag,flag格式flag{***}。
题目以docker形式提交,并提供详细的部署方法。
5.2 关于Window平台CrackMe设计规则
Windows平台题目,除传统参赛模式(方案一)以外,本届比赛引入新出题模式:一人一密模式
(方案二)
。参赛者可以任选一种模式来出题参赛。 如果选手采用新模式参赛,必须在提交题目时明确参赛模式,否则默认以传统模式参赛。
5.2.1 方案一(老规则)
A)关于注册码
1) CrackMe应有且仅有唯一注册码,除给定的注册码外。
如果
CrackMe
被发现多解,则给防守方1次修改机会,并扣多解罚分。若修改后又多解,则下线退赛,攻击方在此题获得的成绩保留不受影响。
CrackMe的注册码字符集限定为['!','~'],即ASCII码范围是[33,126],共94个可选字符。不允许将注册码绑定硬件ID。
2)CrackMe界面
参赛CrackMe界面必须有且仅有注册码输入项,例如类似的(界面仅供参考,可以是控制台):
┍━━━━━━━━━━━━━━━━━━━━┑
│ ┌──────┐ │
│Serial └──────┘ │
│ 看雪CTF2020 │
┕━━━━━━━━━━━━━━━━━━━━┙
3)CrackMe输入
i.
CrackMe在没有被附加调试的情况下运行时,第一次运行时输入正确注册码,必须显示成功提示信息,若是重启验证的,在重启后必须显示。
ii.
在CrackMe没有被改动且没有被其他程序干扰的情况下,只要输入了注册码,显示了成功信息,则认为该注册码是正确的,否则设计不合理。
4) CrackMe输出显示
i.
注册成功,要出现成功提示信息。
ii.
CrackMe里不允许出现虚假的注册成功提示信息。
B) 算法规则
1)不鼓励穷举
在当前技术条件下,序列号从理论上讲,是可逆或可求出来的,如果破解者必须通过穷举才能得到注册码的,设计文档里一定要描述清楚,并且将穷举代码和程序发给评委验证。评委验证时,如果穷举时间超过5分钟则不通过,另外如果CrackMe的启动时间超过10秒也不通过,需要返回修改,每次比赛每个提交的题目有两次验证机会。
2)其他限制条件
i. 所有参赛 CrackMe 必须可以在
WIN10/32、WIN10/64
、WIN7/32、WIN7/64、WINXP其中一种系统正确运行。
ii. 所有 CrackMe 不可使用第三方保护工具来保护CrackMe,例如第三方壳和VM.,允许用自己未公布的壳或vm或其他手工处理的方法来保护程序,但必须将 保护该CrackMe所使用的壳或VM或其他手工处理的方法与CrackMe一同提交,评委审核通过后方可参赛。所提交的壳或VM或其他手工处理的方法将在赛后向广大会员公开。凡违反该比赛规则的CrackMe将作废,设计该CrackMe的会员将取消本届比赛的参赛资格。
iii .
所有的CrackMe执行后,不能干扰破解者正常使用电脑(比如关闭显示器、禁用键盘鼠标、关机、暴力占用内存cpu资源使电脑死机、破坏电脑文件等类似操作不允许),但允许采用技术手段关闭调试器,防止破解者破解。
iv. 所有CrackMe设计的总体原则是绿色安全,不可含木马或 rootkit,没有任何危险或恶意程序,不能对系统进行破坏,可以正常结束,结束后不能给系统留下垃圾(比如临时文件要删除,驱动要卸载干净),不可使系统重启。
v. CrackMe如果有任何危险或者恶意行为,ban ID。如果有杀软或者360等安全软件报CrackMe有异常的行为,评委有权要求参赛选手解释。
vi.CrackMe 不可以联机到网络,或使用服务器注册,CrackMe必须可以在单机运行。
vii.
所提交的参与CrackMe运行的文件包括.exe.dll.sys等一起在不打包压缩的时总大小不超过1M。
viii.如果评审有怀疑,例如怀疑加壳伪装,可以要求队伍提供CrackMe 的源码。
ix.如果评审认为 CrackMe 使用了不合理的设计,或违反比赛精神,便会判定CrackMe无效,取消奖品,并把参赛者提交的技术文件,在论坛公开,让会员公开讨论。
3)
放宽技术限制
i. 不限制使用套娃。可以使用任何数据和代码变换; ii. 不限制线索隐藏方式。可以将线索以任何形式置于CrackMe的任何位置;
5.2.2 方案二(新规则)
A)界面
1)防守方发布的Crackme应允许输入用户名和序列号,并提示用户名和序列号是否匹配正确。
例如类似的(界面仅供参考,可以是控制台):
┍━━━━━━━━━━━━━━━━━━━━┑
│ ┌──────┐ │
│name └──────┘ │
│ ┌──────┐ │
│Serial └──────┘ │
│ 看雪CTF2020 │
┕━━━━━━━━━━━━━━━━━━━━┙
2)防守方在发布CrackMe时,应向大众公开一组用户名和序列号,即
“
Name/Serial
”
,其中公开的这个用户名“Name“,必须是该CrackMe文件的
hash值。hash算法指定为SHA256,用户名为hash结果的前64bit的16进制大写文字
例如:参赛CrackMe.exe文件的hash结果是 50be38745d82d93f3a974701e86c1cafcbc2ec83d1f1913d216079022ba7317f 则用户名
“Name“
应为 50BE38745D82D93F
如果CrackMe不止一个文件的话,计算hash时应包含CrackMe的所有文件(第三方共享库除外)。 参考hash计算工具:http://www.atool9.com/file_hash.php
B)判胜条件 1)若攻击方找出特定用户名(“KCTF ”,不含引号)的序列号,经KCTF系统自动确认,将认定攻击方获胜; 2)若攻击方找出特定用户名(“KCTF”,不含引号)
的第二个序列号,经KCTF官方确认,将认定攻击方获胜,且此题多解; C)规则限制 1)干净环境中,10秒内出提示且不能虚假提示; 2)KeyGen算法不能基于“未在CrackMe中公开的秘密信息”。如果需要穷举,则穷举时间必须小于5分钟; 3)不能依赖网络、不能依赖硬件; 4)禁止使用第三方保护工具、禁止恶意破坏机器; 5)不超过10M; 6)同一用户名不应有多个序列号,否则罚分。
7)禁止在Crackme中为特定用户名(“KCTF”)设立独立验证路径,以绕开hash用户名的验证路径
。
8)放宽技术限制 i. 不限制使用套娃。可以使用任何数据和代码变换; ii. 不限制线索隐藏方式。可以将线索以任何形式置于CrackMe的任何位置; iii. 序列号字符集限定为['!','~'],即ASCII码范围是[33,126],共94个可选字符。
5.3 关于Android/iOS平台CrackMe设计规则
参考Windows平台规则,确保CrackMe能在常见移动端稳定运行,题目打包压缩后不得超过3M,不建议采用LLVM保护。
5.4 关于WEB题目设计规则
设计一个存在WEB漏洞的WEB程序
漏洞包括不限于注入、命令执行、文件上传等漏洞
攻击者根据漏洞攻击成功后能获得flag,flag格式flag{***}
题目以docker形式提交,并提供详细的部署方法。
5.5 关于智能硬件PWN设计规则
设计一个可以运行于模拟器如qemu中基于uboot的arm32位程序。
该程序能够通过uboot引导并稳定执行。
该程序可设计为存在漏洞程序、crackme程序等。
参赛者可以解题成功后获得flag{*********}。
设计者需提供可以运行设计程序的qeum版本信息、以及让uboot成功运行起来的必要信息(如模拟的目标板、内存等等)。
设计者还需要提供已经设计好的uboot二进制文件、比赛程序、以及解题思路及答案。
奖项设置
一等奖 (1名)
群晖(Synology)DS418 四盘位 NAS网络存储服务器 + 亿格瑞 A6(4K蓝光高清播放机2180)
二等奖(1名)
群晖(Synology)DS418 四盘位 NAS网络存储服务器
三等奖(1名)
亿格瑞 A5(4K蓝光高清播放机)
评选最受欢迎奖(1名) 亿格瑞 A5(4K蓝光高清播放机)
优秀奖(6名)
IDMIX 无线充电宝
主办方
看雪CTF(简称KCTF)是圈内知名度最高的技术竞技之一,从原CrackMe攻防大赛中发展而来,采取线上PK的方式,规则设置严格周全,题目涵盖Windows、Android、iOS、Pwn、智能设备、Web等众多领域。
看雪CTF比赛分为两个阶段:
第一阶段是防守篇,防守方根据比赛要求制作题目,根据题目被破解的时间排名,被破解时间长者胜出。
第二阶段为攻击篇,攻击第一阶段的题目,根据攻击成功的时间与题目排名,破解时间短且破解题目数多者胜。
既给了防守方足够的施展空间,也避免过度浪费攻击方的时间。从攻防两个角度看,都是个难得的竞技和学习机会。
八、合作伙伴
杭州安恒信息技术股份有限公司(简称:安恒信息)成立于2007年,科创板股票代码:688023,一直专注于网络信息安全领域,公司主营业务为网络信息安全产品的研发、生产及销售,并为客户提供专业的网络信息安全服务。公司的产品及服务涉及应用安全、大数据安全、云安 全、物联网安全、工业控制安全及工业互联网安全等领域。
公司秉承“助力安全中国、助推数字经济”的企业使命,以“诚信正直、成就客户,责任至上,开放创新,以人为本,共同成长”作为企业的价值观,不断提高核心技术创新能力,致力于成为一家具有优秀企业文化和社会责任感的新时代网络信息安全产品和服务提供商。
KCTF组委会
2020/1/20
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2020-4-14 09:43
被Editor编辑
,原因: