
1. 문제 정보
- 문제 번호 : old -42
- 문제 점수 : 20점
- 문제 유형 : 권한 우회
2. 문제 분석
42번 문제를 들어가면 다운로드할 수 있는 file과 번호가 나온다. 다운로드를 누르면 다운로드가 실행된다.

test.txt는 다운이 진행되지만 flag.docx는 권한 오류가 있다.

페이지 소스보기를 실행시 text.txt는 down을 get파라미터로 뒤에 어떤 값을 보낸다. 하지만 flag.docx는 그냥 alert만 실행한다.
<html>
<head>
<title>Challenge 42</title>
</head>
<body>
<table border=1 align=center width=300>
<tr><td width=50>no</td><td>subject</td><td>file</td></tr>
<tr><td>2</td><td>test</td><td>test.txt [<a href=?down=dGVzdC50eHQ=>download</a>]</tr>
<tr><td>1</td><td>read me</td><td>flag.docx [<a href=javascript:alert("Access%20Denied")>download</a>]</td></tr>
</table>
</body>
</html>
test.txt에 down의 문자열이 base64같아 문자열을 https://dencode.com/en/
DenCode | 인코딩 & 디코딩 온라인 도구
인코딩 & 디코딩을 수행할 수 있는 사이트입니다. HTML 이스케이프 / URL 인코딩 / Base64 / MD5 / SHA-1 / CRC32 / 외, 다양한 문자열, 수치, 일시, 색상 포맷에 대응하고 있습니다.
dencode.com
넣어보니 base64인코딩 된 것을 알 수 있다.

3. 풀이
그러면 이제 flag.docx를 base64로 인코딩해서 요청해보자
인코딩 문자열은 ZmxhZy5kb2N4이고

https://webhacking.kr/challenge/web-20/?down=ZmxhZy5kb2N4를 요청하면 파일이 다운로드 된다.

4. 요약
- test.txt 다운로드 링크를 분석한 결과, 파일명을 Base64로 인코딩하여 down 파라미터(GET 요청)로 서버에 전송하는 구조임을 파악했다.
- flag.docx는 자바스크립트로 다운로드가 차단되어 있었으나, 파일명을 Base64로 인코딩(ZmxhZy5kb2N4)하여 URL 파라미터에 직접 입력했다.
- 조작된 URL(?down=ZmxhZy5kb2N4)로 요청을 보내 클라이언트 측의 접근 제한을 우회하고 flag.docx 파일을 성공적으로 다운로드했다.
'워게임 > webhacking.kr' 카테고리의 다른 글
| [webhacking.kr] old-23문제 (1) | 2026.01.27 |
|---|---|
| [webhacking.kr] old-36문제 (0) | 2026.01.27 |
| [webhacking.kr] old-47 문제 (0) | 2026.01.26 |
| [webhacking.kr] old-58 문제 (0) | 2026.01.26 |
| [webhacking.kr] old- 19문제 (0) | 2026.01.26 |