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]的访问是典型的栅栏错误,实际上修改的是
…
BUU-hitcontraining_playfmt-WP
在看这篇WP前,如果你不了解堆上的格式化字符串的利用方法,建议你先看一下这一篇WP。
这道题和xman_2019_format这题基本没什么差别,就是没了原来的后门函数,但是这题没开NX,所以我们可以注入shellcode然后retrun到那里就可以了。程序也没有开启PIE,那么shellcode在的位置就是
…