문제 분석
- File Download 취약점으로 flag.py 파일을 다운받으면 플래그를 획득할 수 있다고 한다.
- 또한 주어진 페이지는 Home, Upload, read 페이지이다.
- 소스코드를 제고하고 있으나, 이번 문제는 소스코드를 분석하지 않고 풀었다.



문제 풀이
파일 다운로드 취약점이란?
웹 서비스의 파일 다운로드 기능에서 사용자 입력값을 적절히 검증하지 않아 발생하는 보안 결함을 의미한다.
해당 취약점이 있는 경우, 사진 5와 같이 get 요청 url에 기존 입력값 대신 "?name=../../../../../../../../../../etc/passwd"를 입력하면 passwd 파일이 출력된다.
문제 풀이
해당 문제에서는 "?name=../../../../../../../../../../etc/passwd" 로 get 요청을 보내자 read 페이지의 content 부분에서 passwd 파일 내용이 출력됨을 확인할 수 있다.
그렇다면 flag.py 파일 또한 확인할 수 있을 것이므로, "../flag.py"를 넣자 flag가 출력되었다.



문제 리뷰
- 보통 dreamhack 문제들은 소스코드를 분석해야 하는데 해당 문제는 분석하지 않아도 flag 값을 확인할 수 있다.
- 파일 다운로드 취약점에 대한 대응으로는 다음과 같다.
- 파일명에서 경로 조작 문자열을 필터링한다.
- 중요 파일과 디렉토리 접근 권한 정책을 설립하여, 사용자가 접근하지 못하도록 한다.
- /var/www/html 경로에 파일 디렉토리가 위치하지 않도록 해당 디렉토리를 분리하도록 한다.
'CTF > Dream Hack' 카테고리의 다른 글
| [Bronze 1. XSS] Are you admin? (0) | 2026.05.12 |
|---|---|
| [Level 1] XSS-1 deploy 문제 분석 및 대응 방안 (0) | 2025.12.13 |