BUU-0ctf2017_easiestprintf-WP
明天就考四级了,前几天也是事情一大堆,还有个2077,昨天甚至没有写题,考虑到我岌岌可危的绩点,我现在准备放慢pwn学习的节奏了,之前花的时间挺多的,投入到数学上的时间也确实太有限了。之后就考虑每天刷道水题维持下手感吧,新的知识看着学,如果没新知识WP也就只简单地贴个exp吧。虽然在寒假前没有啃下堆有点遗憾,但是也只好这样了。
…BUU-xman夏令营选排位赛_2018_main-WP
这道题目挺有意思的,我首次通过leave指令实现了成功的栈迁移,因为leave和
mov rsp,rbp
pop rbp是等价的,这道题目栈上可以输入的长度只有32字节,偏移本身就要占去18字节,但是在bss段上却可以输入0x1000个字节,足够rop了。所以我们填充rbp的备份时用bss段的地址来填充,并且让程序返回到leave指令处,然后通过mov rsp,rbp就实现的栈迁移。这样就可以让程序执行bss段上的rop链了。要注意的是,栈迁移的时候不要迁移到bss段头,这样在printf泄露的时候会出现奇怪的问题(估计是printf函数对更低地址中的load段等进行了修改造成了问题),稍微往高地址迁移一点既可以成功地leak。
BUU-mrctf2020_spfa-WP
spfa真的是在哪里都被黑啊..

这里我们可以实现对qu[1000]的一次修改,而对qu[1000]的访问是典型的栅栏错误,实际上修改的是
…