[Solved in under 5 minutes]
벌써 새벽 05시 40분이다.
Wargame이 너무 재밌어 밤 세서 하고있다.
나는 미친게 틀림없다.
가보자

그냥 보자마자 File Download 취약점을 생각했다.
그래도 일단 소스코드를 보자

코드를 보니 ?down를 통해 파일을 다운로드 할 수 있다.
심지어 잘 나와있다.
하지만 뒤에서 설명하겠다.

test.txt를 다운받으면 잘 받아진다.
하지만

flag.docx를 다운받으면 거부가 뜬다.
Burp Suite를 통해 다시한번 보자

?down=dGVzdC50eHQ=
test.txt를 다운받을때 저런 파라미터가 보이는데 이전에도 말했지만
뒤에 =, == 가 보이면 Base64를 의심해라.
바로 Cyber Chef로 돌리면

이름을 그대로 Base64 Encoding하여 URL 파라미터로 만든것이다.
그럼 반대로 역발상을 해보자
dGVzdC50eHQ=(Base64) -> test.txt
라고 한다면
flag.docx -> ??(Base64)
로 한다면 그게 파일 다운로드 파라미터지 않을까?
바로 해보자

ZmxhZy5kb2N4
flag.docx -> ZmxhZy5kb2N4(Base64) 로 한다면
아 말하기전에 Base64에 대해 어? =, ==는 거의 Base64라고 했는데 이건 =이 없는데요? 이럴 분을 위해 알려드리자면 Base64는 3바이트 단위로 인코딩하기 때문에 flag.docx = 9바이트 즉, 딱 떨어맞아지면 =, == 가 안 붙게된다.
이것도 알아두자.

여하튼 test.txt 다운로드를 눌러주고 Burp Suite에서
저 값을 집어넣어주며 다시 forward를 눌러주면

flag.docx 파일이 다운받아집니당
열어주면

FLAG{~} 가 나오는데 이걸 홈페이지 삽입하자!!

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 답 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
FLAG{very_difficult_to_think_up_text_of_the_flag}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
이전에 어디서 풀었는지는 잘 모르지만(내가 이제부터 기록하는 이유) 비슷한 부류의 문제를 풀어봤기 때문에 정말 막힘없이 한번에 촤라락 풀었던 것 같다.
모두 맨땅에 헤딩 조금씩 하다보면 그 고통때문에 비슷한 유형의 문제는 금방 풀 수 있을 겁니다!!!
포기만 하지 마라 (대위 윤00)
나랑 같이 군생활 하고 같이 전역한 ㅋㅋㅋㅋ 제일 친한 형이 항상 하던 말
그러니까 다들!! 화이팅 합시다.
Webhacking.kr Old-42 Write-up
이상 보고 끝!