0x00
9 月末的时候去兰州打了场比赛,记录一下这些有趣的时刻和一些自己的思考,但可惜当时没怎么拍照,没有留下什么精彩的瞬间。还没比赛就在酒店发呆,比赛了拿奖就光顾着高兴,完全没有拍照 23333。
有一说一兰州新区的饮食我等广东人是真的不习惯。。。有些配料我愿称之为黑暗料理,又酸又咸又苦,着实是打扰了 - =
兰州首次举办这类型的比赛还是相当重视的,接送车队直接警车开路护送,交警疏通道路,使得路途全程无红灯,牌面得一批。
0x01
比赛场景比较标准,也是在体育馆搞的
放出比赛几天为数不多的照片之二。
虽然饮食不太习惯,但那边的酒店性价比倒是挺高,如图 LOFT 的一晚上只要 300 左右,而且里面有 3-4 张床。
没错,3-4 张,你甚至可以开盲盒,猜猜开的房间有几张床。
到那里和队友们一人开一间大床房,最后统计发现加上地板的话能睡一村人,太棒了。
0x02
在半天的旅途和一天的发呆后,到了比赛的时候。
这次的比赛赛制比较新颖,分有两个赛道,一个是蓝队的防御,一个是红队的 AI 自动化攻击,AI 自动化攻击的场景均为 pwn,红队的 AI 自动化攻击队伍是邀请的各大厂商的队伍,红队攻击的目标为蓝队的 pwn 场景,所以蓝队的 pwn 场景都会计算防御未成功每轮的失分,除去 pwn 场景外,其他的所有题目得分均为动态单次得分,不受轮次影响。
因为在晋级通知中得知自己队伍全程都是流量分析和场景防御,所以就收集了一些常见的中间件或者组件或者框架的防御方案备用,没想到比赛还真就碰到了,场景防御里面 nginx 和 tomcat 的配置占比很高,还有一些 ssti 的修复等。
四个队友参赛,两个负责流量分析,两个负责场景防御,场景防御有 web 和 pwn 方向,大家配合的也是很有意思,做累了一个方向就换一个,做的时候也互相讨论互相口嗨。
然后就
0x03
这次还是首次体会了一把在题目已经基本无法突破的时候只能盯着排行榜希望不被反超的感觉。
比赛途中主办方的人还为了节省时间提前采访了我们,把大家都奶了一口。这口奶完就掉到第三了。打到后面都累了,排名还追不上,大家都在口嗨,别人首次举办比赛,别不给面子拿了个第一,人家不让你回去(
挂了会机,休息一会已经开始痛的眼睛后,在同事 “冠军有十万奖金” 的激励下,又继续看了看题目,最终突破了三道高分题目,然后提心吊胆地等比赛结束。
倒数 5 分钟的时候,整个人紧张得都在座位上蠕动,生怕被超越了。
不过最后,还是第一。
0x04
赛后一直在想,可能过了这次机会,以后再想拿第一就非常难了,这次刚好碰到了新赛制,参赛选手们可能存在一些不适应,毕竟我们竟然吊打 Nu1L 等一众强队,说出来我自己都不信。
在整个修补过程中逐渐掌握了一些技巧,分析一下这些技巧可以清晰认识到防御的比赛比攻击的比赛难度不在一个量级,除非防御的比赛出现大量运维知识点。
攻击的比赛的题目都是漏洞利用,利用都会存在利用链,无论这条链是基于代码的还是基于逻辑的,串起来都需要一定的知识,而防御的比赛就不一样了,防御的题目只需要把整个利用过程中的一个点打断就完成任务了,而且比赛题目的 patch 尝试次数高达 20 次,这就导致在某些时候可以 “暴力破解” 式修补。
同时因为题目难以模拟生产环境,导致了题目的功能 checker 和题目业务逻辑并不复杂,所以在 20 次的修补机会中,可以卖掉几次来定位 checker 逻辑、题目主要偏重考察逻辑和 exp 逻辑,这就导致了可以通过测试来缩小需要修补的范围,最后一击命中。
从上面的逻辑可以得知,当大家都掌握了这个技巧之后,防御类比赛的修补就会变成比手速比赛。而这个技巧,并没有那么难掌握,甚至可以说是很容易就能掌握,毕竟像我等菜鸡都能在比赛过去一半的时候就意识到这个问题。
也是因为这些原因,让自己觉得这个奖,完全就是运气拿来的,可能再过了一年两年的,我怎么都拿不到了 23333,毕竟那时候大家都又会打防御比赛了。