随想

今年打的第二场比赛,远没有之前校赛中玩得开心,心态崩地可怕,心情很是不稳定,尤其在退赛(伪)后。也算是教训了,又一次地,无比清晰地感受到了自己的菜,无比清晰地感受到了他人的强,无比清晰地感受到了生活的满满恶意,各式各样各个方面的满满恶意。唉,并不可爱的,世界的另一面呀。

这次CTF打得很是孤独,作为hacker(伪),我要辗转地搜寻零散的信息,不能和人交流,不能说话。但我觉得,交流是非常必要的,能够使模糊的认识转化为清晰的表达,而且在找那种细密而恼人的bug上有奇效。比赛中我也会和没打的同学分享自己的感受,但并未感到孤独感有所散去,而是始终存在。这或许是CTF的专属特点吧。可能团队赛情况会好一些。

孤独还体现在无人理解上面。当时看群里就没几个熟悉的人,我跟很多人的关系都是单向边——我认识人家,但不了解人家,人家不一定认识我。包括但不限于MSC的那帮人,还有学长如Heltion、小栗酱、sub(结果他们全是来打酱油的……)。身边人的话,zc对具体的问题就没有表现出解答的兴趣,zwk也是。学长肯定是不能问的,只能“宏观地”讲讲自己的情况和心理状态(这些天跟学长的交流真是失败)。唯一的战友便是ljq了(哦,还有xndl,不过我们的交流实在是少……之后发现yyt也进群了,随便聊了一下,但也没怎么聊),这几天跟她聊得也多,比较开心,当然,也不总是开心……

抱佛脚

我开始了解到ACTF,是5月6号,而比赛是13号到23号,还有一周可以准备。本来想继续刷BugKu的,但进了群发现大家都在做School-Bus,也便入坑了。

School-Bus……对我来说好难的。印象里两三天都没能搞出一道题,很让人沮丧。搞出来方式也不够elegant。这些,都暗示了我在安全领域的瞎搞和无知的本质。

School-Bus上Web题占多,而我对Web相性不佳,也没从中得到什么提升。工具用得不顺,自学缺乏方向,对知识没有系统性的认识,这便是我了。

不光Web搞不来,ppc、rev,misc也都做得非常艰难。crypto基本没做。对较复杂的东西,如DES没什么认识,对简单的一些点也没有完全了解。

虽然School-Bus做得比较挫败,但还是从中得到了一些小经验包的,calculator啊,php include啊,在ACTF中也有用到。不过Web还有好多水题没搞出来,这就比较烦了……Web,得盘。

中程赛事

ACTF持续的时间为10天,说长不长,说短不短,较之ICPC这样的五小时集中解题更能考验选手在处理好比赛与生活、心态等方面的素养,较之动辄数月的长期赛事则更加紧张刺激。我可能还不太适应这样的模式吧,被摆了一道呢:没有处理好比赛和生活的关系,心态在两个极点中极速变换,太过看重rank但又不具备与这个排名相匹配的能力,我还有得学啊。

本来的预想是先拼命做个两天,之后应该就没题做了,连着划水若干日,最后再苟苟,中间始终要维持好心态。很完美的预想,只是和现实完全不符。我拼命做了五六天,做得心神憔悴,神魂颠倒,身心俱疲。主办方也隔两天放一波新题,让人喘不过气来。最后实在做不动了,才作罢,可心中仍有千丝万缕的挂念,这就很揪心了。不甘落后于人,但又没有改变现状的能力,只能假装心无挂念地逃避着这一切,逃避着这沉重的绝望感,无力感,压迫感和由自身不断外溢的不满与控诉

比赛期间心理状态真心是崩地可怕,晚上觉也睡不好,想七想八的。跟学长交流了一下,觉得把思绪整理一下为好。于是想了一下为什么睡不好,发现天太热了(不是),所以心不静,那么心还为什么不静呢?又可以整理出三个方向,列在下面了。

首先是处理好CTF和生活的关系,这个比较现实,就不贴上来了。因为要打比赛,作业也没写,课也没听,然后乱七八糟的琐事还很多,就感觉很烦——时不时想起来啊这个东西还没搞。所以就整理了一下,这下倒清晰多了,琐事也不是很多嘛。评估一下,感觉还是协调得来二者的。

时光回放

启程

紧张刺激的第一日,本以为是传奇的开始,谁料是噩梦的开端呢……

这都是虚的……

(这个排名,虚的……保不了半天)

微积分做到一半开始打比赛……以为动态计分制是说越早做出来分越高(后来发现根本不是这回事……),于是从课程中间一直打到了十一点多……做了不少水题,意外地高兴了一阵子($\leq 3h$)呢。

中午crypto的warmup1有了一丢丢思路,但还不是很清晰……先去跟学长约饭吧!这次交流不是很有效,我没能提出自己面临的具体的问题,而对于学长在大方向上的提问我也有些心不在焉。

下午一开始感觉自己还是可以的,大概是到视听说口语考试的时候吧,心态还比较正常。(马上就要消失的迷之自信)

但是下午微积分习题课的时候,就发现排名已经噌噌噌地掉下去了,痛心疾首之际,发现这已经无法挽回了……(这时候也才了解到动态计分制的真实含义……)习题课上后面的人唧唧歪歪的,“什么阿猫阿狗都在打CTF”。

晚上突然看到ljq的尬膜表情包,于是了解到人家也打CTF。有些惊喜,也有些紧张。

“dl加油鸭”

“拿了prize记得bg”

开心!(可,这也是个flag啊……)

中程

完全没印象后面的若干天是如何度过的。大致是这样吧?

1
2
3
4
5
6
7
8
while(faith):
ideas = read(problem_index)
for keywords in ideas:
search(keywords)
if(feeling_disgusting()):
sleep(some_time)
learn(keywords)
ask_myself('where is the flag')

看看提交记录(firefox的历史记录就懒得翻了……人类在搜索时的心理状态好奇妙),发现自己在第二天(14号)搞出来了warmup 3(啊,0:30的寝室之光),搞出来了baby_rev(这下能开搞一类题了,rev!)。另外在晚上搜出来了another php(序列化教我做人……)。

第三天(15号),开新题了,累啊!这天搞出来了file inclusion 2,what’s this 1,real child(哭!不是单射,错当单射),what’s this 2-3(又是11点半,还好刚好在睡觉的点搞出来了)。

第四天(16号),open your eyes,asm tour(累毙了),warmup 4(思路其实还是简单的,主要是被恐惧感支配了),查出来了file inclusion 1和baby php,搞出了Endless ELF(此题分虚高了,不过还是希望其他题分能虚高一点……)。

第五天(17号,今天是ljq的生日!),easy reverse,babyrev(高斯消元法码不对于是开始怀疑一切的痛苦,有谁,能领会呢)。

第六天(18号),shell master(累毙了!可我还是不知道linux的学习路线是怎样的,哭),md5 Hacker(看错变量名的尴尬,自行命题的愚昧)。

自从第一天掉到14+后,之后就没再爬上去过。时不时还被挤到20+名去,慌啊。艰难地,在rank 20的边缘徘徊,那些人都好可怕。打了六天,实在打不动了,faith=0了,心累了,尽量不挂念着这个吧……慢慢爬回原先的轨道上,从补作业开始……但是看到群里dl复出的消息时心中还是不免一震,感到,一阵,持续的失落。

(可能是生活对于我自视甚高的惩罚吧。退赛之后,原先清晰的目标模糊了。不知道自己想做什么,脑袋空空如也。这几天不是很想吃饭。)

信念确实是在做完了crypto和rev的水题后消失的。本来还想做做pwn,但在authtoken验证失败后突然,感到一阵无与伦比的疲惫。不想做了。什么aes,也不想看了。好累。虽然坚持做完了crypto和rev的水题,但我的信念还是不够啊。总是被trivial的事情困扰,我的问题真不小。

第八天自己出了题给妹子做,结果搞错了两个点,系数忘乘了,图像是反的。让人家算了一晚上都没得到正确结果。没睡好,第二天三点起来,意识到了自己哪里算错了。是算错了啊,是算错了啊。

沉没

没怎么管,就……结束了?最后还要交wp,看见群里讨论地火热,可他们提到的那些词自己都不认识,突然感到一种距离感,以及疏离感。

wp零零碎碎地写了一天,写得真心累。尤其是crypto,做得吃力,得分又低。我都不知道自己怎么怎么想出那么混乱却正确的思路的,怎么用那些丑陋得可怕的代码把题目做出来的。看着并不漂亮的wp,又一次发现自己和强者存在的差距,在心理状态上的差距,在思维方式上的差距。

不过差距毕竟是客观存在的,老是盯着自己比不上别人的地方看也没意思。我就随便补补题,拓宽一下知识面好了。还是要过得开心呀~

看上去并无所学?并非如此,起码我暴露了很多问题。这些!都是要搞掉的!

①对metadata的敏感性;

②对图像的敏感性(可以自己再思维发散下,想想自己要怎样把数据藏到图像里);

③联想,脑洞(加强交流,提取关键点,在概念间做连接,复杂度不就是$C_m^n$嘛);

④阅读理解代码的能力(尤其是IDA里那些);

⑤密!码!学!security book(还没拿到hhh)有空整理(啊,又是“有空再做”)。

web还是放放好了,打算是先和同学交流,了解一下要怎么入坑吧。

补题时间

这次比赛好像有80+道题呢……还没有官方的wp,显然不能像校赛那样把补题过程写到随笔里了。

所以就记一下大概要努力的方向吧~毕竟这是快乐鬼畜的CTF啊~

(以下,按优先级排序)

1.初探Linux(读一读关于操作系统的课本,对它有个概念先?)

2.asm的第一个程序,如何编译运行查看断点?

3.补misc的题,抄wp,戳脑洞

4.回顾rev的题,补其他题

5.想想warmup系列有无elegant的做法,如能,再将CTR熟悉一下

6.在其他地方(pwnable.kr)补点pwn,熟悉一下套路

7.了解一下Blockchain,及其他p2p方案

8.怎么用一台client和一台server模拟upload的效果呢?(嗯,首先我得有一台server……)

wp的话……我想可以参见这里,(呜呜呜我不知道自己都大一多少名了我好菜呜呜呜)


开始于2019-05-21

完稿于2019-05-25