PWN31
使用checksec查看保护
发现除了canary剩下保护全开,那么就没有前面几个题目那么简单了,ida打开看见他给了我们main函数地址
虽然开了pie但是在他们之间的偏移是一定的,那么我们就可以通过他给的main函数的真实地址减去偏移得到文件(elf)的基地址,然后puts_plt puts_got表地址就有了。
在ctfshow函数里面有一个栈溢出漏洞但是我们要找一下溢出偏移,因为pie最好以gdb动态调试为准。
在gdb中我们先生成300个字符用来计算偏移
然后再输入的时候进行输入最后会报错因为栈溢出了没有这个返回地址,那么我们可以通过cyclic -l 报错地址 来查找偏移
得到偏移是140也就是填充140个字节可以到返回地址,但是这个题有一个注意的地方,就是不能覆盖了ebx,ebx里面存的是got表地址
它是通过这个函数来的,功能是将下一条指令的地址赋给ebx寄存器
然后就是正常的ret2libc啦,exp在这里文章来源:https://www.toymoban.com/news/detail-844375.html
文章来源地址https://www.toymoban.com/news/detail-844375.html
到了这里,关于CTFshow pwn31 wp的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!