CTF学习
本文最后更新于:1 年前
令人一言难尽的课
这个课程实在是令人一言难尽,虽然有他的好处,但是在一些情况下又会让你感到精神错乱。毕竟我疯狂写了好多好多天的作业,这次来写也只是因为,我确实为此而发愁。
这个图片甚至还是一个Misc的题。
课程回忆
web
web
是我最开始学习的部分,指后面的部分都一点没懂,开始甚至想做一做web后面的专题,奈何pumpkin老师太给力了,指出的DNS rebinder
我是毫无思路,只能无奈放弃,后面好像有P牛的防护,也是通过DNS rebinder
来实现的,可惜我没有实现。
misc
misc
可以说是我学习最为轻松的一个,也是听的最认真的一个。
学习misc
,你可以遇见:
- 通过各种方式找寻图像中的
flag
- 将MP3转成GIF之后再让你变回音频
学习一门隐写技术两小时,结果代码15行- 对
web
中的SQLi注入进行重温 - 将
dnscat2
的协议变成人可读的形式 - 读取密码
- 沙箱逃逸
反正最后Tony老师给分好,所以上课体验舒适。
reverse
这个实在是,你越改越看不懂,据说后面有教软件脱壳技术,但是由于lab1硬核,所以就潦草应付了事。
大概就是拿到程序,放进IDA
,然后开始逆向工程,而且越改越乱,我之前想要一个结构体,然后被其中独特的一些操作,类似Byte1之类的震撼到,但是实际上只是说,这一段是0LL。
pwn
有Big Ma作为送分小能手,还算舒适,虽然不太会写。
我大概学到
- 起shell:最让人兴奋的时刻,以及永远记得起shell
- 栈溢出覆盖返回地址,但是我用的是leave和返回都覆盖。
- 假如不能自己写就借用题里的,实现
ROP
- 沙箱中syscall被禁试试
orw
(open,read,write)
嘶,好像也没什么东西。
不过BigMa给分确实是好的出乎我的意料。赞美BigMa!
crypto
密码学的部分实在是让我感叹我的数学能力和复制能力下降,我甚至抄都抄不对。
这期间大概学了求余,以及如何用快速乘等办法实现代码运行速度的优化,还了解了为什么质数相乘那么方便,得到的结果再加一却变得难以质因数分解。
写完之后
当我终于写完了为时20天的作业,当我把浏览的网页一个一个删除,界面被清空之时,获得了一种莫名的安宁感。不是盛大的谢幕,而只是——长长地舒了一口气,仿佛之前留在空气中的阴霾一扫而空。
在写完之后,回头来看看,我在后续的一段时间里都会记得,快速解决问题,往往需要最朴素的方式——指手抄SQL注入,Think Twice,Code Once——因为写代码和修代码实在是太浪费时间了,还有,不要相信ChatGPT——因为你可能花费一个小时在和他绕圈圈,却始终不给你正确的答案。
假如有机会,或许我会再试试CTF。