CTFshow pwn31 wp
PWN31使用checksec查看保护
https://img2024.cnblogs.com/blog/3419447/202403/3419447-20240331215801134-387648227.png
发现除了canary剩下保护全开,那么就没有前面几个标题那么简朴了,ida打开看见他给了我们main函数地址
https://img2024.cnblogs.com/blog/3419447/202403/3419447-20240331220031191-1087451453.png
固然开了pie但是在他们之间的偏移是肯定的,那么我们就可以通过他给的main函数的真实地址减去偏移得到文件(elf)的基地址,然后puts_plt puts_got表地址就有了。
在ctfshow函数里面有一个栈溢出漏洞但是我们要找一下溢出偏移,因为pie最好以gdb动态调试为准。
https://img2024.cnblogs.com/blog/3419447/202403/3419447-20240331220729322-102655258.png
在gdb中我们先生成300个字符用来计算偏移
https://img2024.cnblogs.com/blog/3419447/202403/3419447-20240331221134113-1569895030.png
然后再输入的时候进行输入最后会报错因为栈溢出了没有这个返回地址,那么我们可以通过cyclic -l 报错地址 来查找偏移
https://img2024.cnblogs.com/blog/3419447/202403/3419447-20240331221257970-1875865910.png
得到偏移是140也就是填充140个字节可以到返回地址,但是这个题有一个注意的地方,就是不能覆盖了ebx,ebx里面存的是got表地址
https://img2024.cnblogs.com/blog/3419447/202403/3419447-20240331221741588-487798090.png
它是通过这个函数来的,功能是将下一条指令的地址赋给ebx寄存器
https://img2024.cnblogs.com/blog/3419447/202403/3419447-20240331221942124-710854355.png
然后就是正常的ret2libc啦,exp在这里
https://img2024.cnblogs.com/blog/3419447/202403/3419447-20240331222125796-1350496631.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]