CISCN2022线上决赛纪行

菜鸡web手的国赛之旅

今天收到了赛后抽奖中的音响,说实话质量一般😢,不过倒也趁着这个机会记录一下国赛这一档子事了。

说是纪行,其实线上参赛哪都没去🤣总的来说,这届国赛跟以往还是有很多不一样,不管是从形式上还是效果上,以及不发奖金上…

记录一下自己在各个环节的总结和反思(吐槽🤦‍♂️)

关于赛制和赛题

赛制从awd(p)变成break&fix,但是却没说清楚各个环节的分数占比,结果就是比赛完了不知道队伍具体排名,等到下午颁奖才知道自己第几……

在赛题难度上也存在着一些问题,fix不难但break很难,几乎就变成了patch大赛,谁修谁得分(

以我们队为例,day1day2一共得分16次,只有4次是break

以及新的分数计算规则使得队伍之间分差不大,在Whitzard分数明显高于中后段队伍的情况下使用归一化计算总分又使得中后段分差进一步缩小,很多队伍因为build环节的差距导致翻盘或者翻车

综合来看,线上赛且不使用awd(p)的情况,这次的赛制确实是一种有意义的尝试,但是是否存在更优解还有待商榷。

build

build上分的就是我本人没错了,hiahiahiahia

从最后的排名逆推,我们在出题环节被一两支队伍反超,但是也同时反超了其他的两三支队伍,所以总体看下来我们的build环节是有一定的优势的。因为队里pwn佬手里没题了,我们build的环节选择了出web题,基本流程是我来做的。从得分来看并不一定必须是难题才能得高分,我设计的思路只是一个php弱等绕过,加上反序列化字符串逃逸以及伪协议写webshell,都是常见的内容。但是我们的出题整个过程都是符合主办方要求规范的。客观上讲好的题目确实需要符合规范,不管是题目环境、expwriteuppatch等等,都需要比较周全的考虑。隔壁就有因为build崩了掉出一等奖的队伍,蛮可惜的。

break&fix

到这里这就不得不说fixchecker了,总得来说就是比较魔幻,有一些题目让人摸不到头脑,有一些题目纯靠猜。某一题的漏洞点在于执行函数,我在safe函数中过滤掉改函数后check失败,后面想了很久想不通,后面队友提醒过滤一下参数,例如flag字段,然后就fix过了,我直接一个大无语。本着不破坏web服务功能的原则,我在safe函数中仅仅过滤了与exp有关的函数,这应该算是合理的,本身这个函数就可以造成命令执行,如果不禁用该函数而是禁用flag字段的话总感觉有点自欺欺人,选手都能命令执行了,你一个flag字段能拦住谁?至于其他某些题,注释掉eval、注释掉实例化类的代码就能fix通过的这种题目,确实有点靠猜了。倒也不是纯运气游戏,只是比赛毕竟时间有限,如果能短时间内能拿到分数那大家自然不会多看,所以就显得有点夸张。

一些闲话

pwn佬带着拿了一等,还是很开心的。比赛没落后很多,出题有领先,勉强算是没拖队伍后腿吧。以一个学年作为期限的话,去年在第二轮上因为某些奇怪的事情差一名进入决赛,今年总算是弥补了之前的遗憾。在技术上,这一年来因为推免的课程和焦虑没能把很多的精力和时间投入进来,所以只能说自己的进步比较有限,但好在不是原地踏步。希望自己能在大四期间有更多突破和进展。

回顾自己差不多两年的ctfer生涯,有过荣耀,也有过遗憾。大概还有两到三场线下,k1ling@Spirit这个id就完成了它的使命。在结束的那天,回想今年的国赛,我想自己已经足够给这个id画上一个满意的句点了。至于未来,谁知道呢?那就交给未来去书写吧。

这是我本科期间第一次ciscn决赛,应该也是最后一次了。还是有些感慨,自己的大学生涯也已经过去四分之三了,不过庆幸的是还算摸索到了一条未来的路。虽然有不少令人后悔的事情,错过了很多,克制了很多。但可能正是这些遗憾才成就了如今的我。慢慢地明白,高中时候其实大部分人的选择就只有一个,而大学却有着很多选择。可选择也意味着失去,意味着失去了其他的可能。以我和身边同学的经验来看,至少大学并不只有卷绩点这一个选项。兴趣爱好、竞赛科研、为人处事,任何一方面能做好都是给留未来的财富。

但是不要贪杯哦🐶,毕竟人的精力有限。普通人如果需要应付一个还看得过去的绩点,那么参加一两个自己感兴趣的社团、一定程度上参与一些学生工作或者社团工作,就足够了。毕竟作为一个社会人,还要留出一定的社交和娱乐时间。

一言以蔽之,大学谁都可以玩,但是别忘了还得给未来谋一个出路。

上一篇
下一篇