본문 바로가기
3. 웹 애플리케이션 취약점 진단

파일 다운로드 - 웹 서버 내부의 시스템 파일 다운로드하기

by Robert8478 2024. 6. 21.

사이트에는 자료실 등 파일을 다운로드 받을 수 있는 기능이 다수 존재한다. 이럴 때 파일을 경로명으로 클라이언트에게 요청받아 제공하게 될 경우 패킷을 변조하고 상위 경로로 이동하는 문자열을 사용하여 웹 서버 내부의 시스템 파일을 다운로드할 수 있다.

[ 자료실 내 파일 다운로드]

파일 경로에 대한 요청으로 자료실에 등록된 pdf 파일 등을 다운로드 하게 되는데 아래의 공격 구문 사용 시 내부의 /etc/passwd 파일을 다운로드 받을 수 있다.

원래는 fileName 파라미터 값에 pdf 파일 명이 들어갔지만, 상위경로 이동 문자열을 포함하여 /etc/passwd 파일을 요청하니 정상적으로 다운로드 받은 것을 확인할 수 있다.

이렇게 /etc/passwd 파일을 다운받고 나서는 이에 그치지 않고 계정별 .bash_history, 각종 환경설정 파일들을 참조하여 추가적인 공격이 이루어질 수 있다.

이에 대한 대응방안으로는 파일을 경로명이 아닌 임의 난수의 값으로 다운로드 받도록 로직을 구현하고 화이트리스트 방식, 혹은 키 값 등을 이용하여 서버에 등록된 정해진 파일만 다운로드 받을 수 있도록 로직을 구현하는 것이 가장 좋다.

특수문자 .와 /를 사용하지 못하도록 필터링하는 방식 또한 대응방안으로 설립할 수 있다.