2021-学期小结

关于大一上

​ 第一学期在一个比较混乱又匆忙的学习中匆匆度过了,在我的记忆中这段时间其实是非常迷茫的,经历了比较多的焦虑,在很多方面比如绩点、考研、内卷之类的奇怪问题有时候有过度的在意,也结交到了一些朋友,总体上我认为是属于一个探索的阶段,但是在第一学期其实在能力上没有什么长进,大部分空余时间在看《c primer plus》(虽然现在还剩一小部分没看完),反思过来在学习方法上的缺点其实跟以前是差不多的,在对于要学的东西的整体上了解太少,导致对于要学什么、怎么学的认知太片面了,当时的我是发现了一点点对安全方面的兴趣

,但是对互联网很多东西了解本来就比较少,以至于不知道从哪里开始入门,厘清各种安全方向也花了一点时间,在学期末的时候有特别棒的学姐来找我交流,才慢慢对安全方面有了一点认识,12月30日,第一次在buuctf尝试看着别人的wp做了一道入门的pwn题,在那一小段时间里,搭建了博客,又在buuctf照着wp做了几题,然后发现我在汇编上面的基础确实太薄弱了,甚至很多很基础的操作也不会(比如看ida啥的)在此之前基本只学过c语言和一点点c++,对于很多ctf的工具、要提前学的东西什么的都没有准备,就先开始了看汇编语言,关于这个最感激的还是那位学姐orz,只是大概十来天后就开始期末备考和考试周了,于是这些事情也搁置了下来,匆匆忙忙考完试,这个学期也就匆匆忙忙地结束了。

关于HGAME2021

​ 1.28结束考试回家后,就着手准备下等待30号的hgame了,这个时候的几天属于不知道要干什么但是还是干一下吧的状态,由于根本也没太多接触ctf的题型,就还是瞎逛了一下buuctf,做了一点basic题目,阅读汇编语言(上学期没看多少就要备考了,所以还剩挺多的),然后做了下兔兔的题有点云里雾里。

Week1

​ 30号hgame开始那两三天,是先做了misc的两题,还有两三题有尝试过但是没办法做出来orz,然后做出了pwn的签到题,并且看了看其他pwn题的题型,该怎么说呢,在做misc和crypto的时候,完全是依靠百度上别人的blog来做,解密题其实还好,就找“ctf密码学题型总结”啥的(doge),还是能得到比较全面的认识。做misc-galaxy的时候其实耗费了很多时间,因为以前根本没接触过流量分析是啥玩意,个人体质也属于web黑洞(,看web资料有点像看天书,所以对于这题其实是一点一点google从“apk文件是什么”查起的,虽然最后是做出来了这道题,但是关于流量分析还是不太了解,只会真·瞎点(我觉得主要原因还是在于web知识的匮乏),对于图片隐写方面还是学习到了很多,做完这道题又尝试做了其他的crypto和misc题目,觉得这两个题型在没啥入门经验的时候,真的是很容易自己误导自己啊,做题的时候只能半猜半做,看着别人blog一点点尝试,有时甚至坚定地认为某个方法是对的(真是太年轻),然后week1的时候也不太敢问出题人,就自己反复撞墙。crypto1和misc2卡了许久,甚至不知道压缩包能直接密码爆破……网上的资料过于综合,适用别的题目的方法其实不一定适用于我做的题,就还是学到了很多知识但是解不出题,也不知道哪些资料适用于这个题,就浪费了挺多时间。最智障的是完全忘记了ctf wiki的存在,后面才翻出来,提高了一点效率。

​ week1在反复撞墙中做题花了有三四天这样,但是收获并不多,并且几乎没有去看pwn题,反思了半小时决定还是尝试学习一下pwn看看能不能得分。然后很迷茫的下载了letter看了ida,发现汇编也看不懂,只知道是个栈溢出,溢出以后怎么getshell也不知道,茫然地看了一会,又茫然地google了下“pwn 没有system函数”,然后又反思了半小时,决定还是先看完汇编。花了两天快马加鞭囫囵吞枣看完汇编后(跳过了一点点题目,主要还是答案看懂了就过,不是好做法),又打开了ida看,发现还是不知道怎么做,只有汇编比之前懂一点(,在大量的google搜索后,其实分不清shellcode和ROP啥的,只是眼熟了这些词,还有ret2libc123啥的(这个时候还没想起来开wiki看看),还花了大量时间重装一个kali和安装各种各样的软件,比如pwndbg和python(python也是刚接触没多久,对它有深深的恐惧),大量google后,我茫然地觉得letter应该是属于ret2libc3题型,当时并不知道shellcode和泄露libc是哪些适用的题型,也不知道shellcode原来是不用自己写的(doge),就尝试用别人的exp改一下看看能不能用,结果当然是疯狂报错,期间倒是学习到了很多pwn基础的知识,啃栈溢出原理和泄露原理,因为不熟悉python也不熟悉pwntools,更不会用gdb,就很茫然地在google搜索各种“pwn入门教程”中度过了这一周,当然分数也意料之中地很低(doge)。

Week2

​ 第二周开始是先做了crypto,先做了白给的RSA题,对RSA有了比较多的了解,也找到了比较全面的资料,做那几题RSA的时候还是比较顺利的,也是学到了很多东西。然后做misc,misc1卡了特别特别久,其实密码和工具都拿到了,然后愣是不知道输密码要加“ ”orzzzzz,就没做出这题。misc2和3的话其实耗时也是比较多的,只能感慨搜索引擎的强大,慢慢地一点一点google还是能找出来,就是misc3的时候以为那串base64码是data url,卡了比较长的时间,后来问热心学长也顺利解决了问题,做完这些事情已经过去了三四天了,然后误打误撞地尝试做RE,慢慢推理也做了出来。但由于week2又是过年,家里事情比较繁忙,时间也比较少,基本上只有一些零碎一点的时间可以看看资料,然后week2就也这样过去了。但是这周虽然做出的题比上一周多,但是我在pwn上的提高几近为0,其实是不怎么满意的orz,最主要还是更想学pwn,但是pwn对我来说困难还是太多了,不好得分,就只能把它往后放放。

Week3

​ 第三周是同样的先做crypto和misc,但是这周的题难度确实比上周大了不少,不断尝试和碰壁之后,做出了两道crypto题,上一周学到的RSA知识在这周还是很管用的,另外在练习写脚本和改脚本的过程中,脚本能力也有了很大进步,至少对长脚本不那么害怕了orz。但是这周的misc我看题目确实没办法做出来,结束以后看wp发现主要问题还是对web知识匮乏(web又又又来了),wireshark也看不出个什么,就很茫然的做了很久的无用功,google流量分析找到的blog好像也不太适合这些题目,茫然地找了很久也找不到什么方向,遂弃之。接下来的几天就打算从头看一下wiki的pwn板块,从栈溢出开始看起,然后上网找了一些例题看wp,又学了学pwntools之类的,对于pwn题的理解确实也提高了不少,但是都是看别人的解题过程,自己解题的能力很低,然后尝试做pwn题的时候确实遇到了挺多困难的,而且根本不知道问题出在哪里、该怎么解决(,照着别人的脚本去写,但是返回信息不知道在哪里出了问题,orz然后就重新先去学gdb之类的,到week3结束也没能做出那道题,其实对自己还是挺失望的,感觉还是得先从一些更简单的题目慢慢练起,对程序的很多知识理解得不透就去照着别人的脚本做题,白白浪费了很多时间还做不出题目,得不到提高,这就是浮沙筑高台的结果(doge)。

Week4

​ 第四周相比前三周来说,其实是最痛苦的一周,前面几天一直在做crypto和misc,crypto1这题确实暴露了我在使用python的脚本能力上很大的弱点,找到了比较全面的资料也能理解,但是在自己动手写脚本的时候就遇到特别多的困难,包括在使用一些函数和库方面,还有在解决报错方面,在debug上等等,由于之前大部分是使用现有的轮子进行修改,基本上都能不出错,但是这次是要自己写脚本,就问题还是在于python用的太少,以至于找不到问题的解决方法。接下来是尝试做了其他crypto、misc、pwn题,都不太找得到思路,然后又因为前面crypto1脚本一直报错又找不到解决方法,再加上总分数比较靠后,人已经陷入比较大的焦虑里,到了周四周五的时候,不太能找到做题的方向,丧失了很大的信心,又因为前几周积累的压力可能比较大,精神状态变得有点糟糕,最后两天是放下了题目决定休息一下准备开学了。

总结

​ 最后虽然没进final,我也做好了没进的准备了orz,但是从整个比赛来说,最珍贵的应该是对ctf各种方向的学习内容和方向有了大致初步的了解,而且也找到了一些好的学习网站,相比于一开始的我确实是成长了非常多,具备了一定的自主学习能力和学习方向,可以不那么依赖外界的帮助,也发现了自己对安全是比较有兴趣的。但是其实还是有点缺憾,这一个月下来的结果其实跟我一开始设想不太一样,我在整个比赛中主要做的还是crypto和misc,但是我一直更想学的还是pwn,只是因为这两个方向好得分一点,而且我在pwn上的基础可以说几乎没有,就没办法在这个方向上得分,所以整个比赛下来自己是比较功利性的(这也是我焦虑的来源),把大部分时间都放在容易得分的题目上,我在pwn方向上的提高并没有我期望的那么高,就这点而言,我就觉得我暂时是配不上进入vidar的,所以也打算今年多去尝试自主学习,沉淀下自己的能力,明年再尝试一次。

接下来的规划

​ 下学期除了多花时间在安全方面,在这方面的兴趣还是比较浓厚的,也有意向自学一下java和go语言的用法,暑期与同学一起尝试自己写一个博客,但是最主要的还是从比较基础的知识学习一下pwn,希望能够有令自己满意的提高。


2021-学期小结
http://example.com/2021/03/03/HGAME寒假/
作者
Magnesium
发布于
2021年3月3日
许可协议