ret2text.md
参考网站:
CTF Wiki
ret2text 是最简单的利用栈溢出漏洞来getshell
的方法,这种方法就是利用程序中已经有的敏感命令比如system('/bin/sh')
来getshell
前提
- 程序存在栈溢出,并且溢出大小合适,能够覆盖函数返回地址。
- 程序中存在敏感命令的调用,我们能够获取其地址。
- 程序没有开启
canary
保护,栈溢出可以被利用。
Implementation
- 找到敏感命令
system('/bin/sh')
的地址 - 计算
esp
到返回地址的偏移量,构造payload
覆盖返回地址为敏感命令的地址 - 运行程序,getshell
Template
1 | from pwn import * |
注意一个重要的问题
在进行栈溢出漏洞的利用时不要直接以通过ida的静态分析确定的缓冲区偏移量为标准,因为有时候编译器会做优化之类的,导致偏移量不对。
具体的还是要使用 gdb
+ cyclic
进行分析
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 HaoIne!