[NISACTF 2022]ezstack
[NISACTF 2022]ezstack
read栈溢出
这题的特殊地点是:
/bin/sh并不是函数的形式:起初的想法是构造一个函数
后来了解到在PWN中并不需用,如果只是单纯的更改附件也只是本地打通,而远程的依然不通,所以这里应该有特殊的方法,之后去了解到:
https://blog.csdn.net/Mr_Fmnwon/article/details/130897024
后来发现自己的想法有误,在pwn 中无需这样只需要在运行动态链接时进行构造传入就行(可参考上文中博主的思考方法):
思考ret2text——没有直接后门函数
思考ret2shellcode——bss段/可执行段不符合条件、栈上nx保护
思考ret2syscall——file查看文件,是动态链接,一般来说gadget非常少,不太适合
思考ret2libc——存在system的plt表/got表信息,且存在栈溢出漏洞,可行。
经过一番了解进行构造payload:
from pwn import * |
学习别人的exp(更加简洁):
32位程序,函数调用的参数都在栈上,我们保证执行system函数时,栈上第一是/bin/sh的地址 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 橘子的星河!
评论