前言
这次跟着lotus-r3kapig打0CTF,题目挺好,学到很多东西,无奈最后实在是菜,题目要么被队友秒了,要么完全不知道怎么下手,确实很有总结的必要。
Time based
DAY 1
第一天比较操蛋是我们除了0ctf还有个nuit du ctf要打,两个时间是重合的,比较尴尬,还好nuit du ctf只有一天,难度也还比较有限,加之队友实在给力(感谢@F0r_1st 和 @nonick) nuit du ctf我就看了个300的题,栈溢出 ROP,可是难受在最后没有write,整个题目没有用到write,也就没办法泄露,加之跳出循环只能当fread != 0x14,一旦跳出就不能再发东西了,最后@F0r_1st用shutdown秒了,这里表示对御用算命师的钦佩之情。
day1基本我就刚在那个Zer0fs
上了,本来是个简单题的,主要是整个结构体好像都shuffle过,和正常的结构体顺序不太一样,最开始比较迷茫,一直以为是debug info的问题,后来发现确实是顺序有问题,就干脆自己靠init里边的信息直接猜field了,最后还算顺利,晚上基本上就逆干净了。方法本来找到的很早,逆的时候已经发现了越界读写,后来@Ne0还来帮我看了下,确认我没有找错,调了一下发现在kernel heap,应该就很确定方法了,然而我还是太菜,在我尝试了几次之后,发现cred一直在初始位置之前!!这个时候我就以为c