ret2win
整个过程遇到了许多的坑,系统是ubuntu 18.04.
环境: ubuntu18.04 、 pwntools(py3)
题目
checksec
r2
发现是fgets
可以看出来要ret到这个函数里面
gdb
padding应该有40位。
构造相应的payload
1 | from pwn import * |
一个坑
ubuntu18.04下 覆盖的ret地址不能是ret2win的函数开始地址,应该是对应的system地址。
原因好像是18.04在内存对齐上有特殊的要求,等研究好了这里会补充
问题原理:http://homura.cc/blog/archives/168