본문 바로가기

정보보안/애플리케이션 보안

[웹 애플리케이션 취약점] 파일 다운로드 취약점

파일 다운로드 취약점

① 개념

  • 파일 다운로드 기능이 존재하는 웹 애플리케이션에서 파일 다운로드 시 파일의 경로 및 파일명을 파라미터로 받아 처리하는 경우, 이를 적절히 필터링하지 않으면 공격자가 경로 및 파일명을 조작하여 허용되지 않은 파일을 다운받을 수 있는 취약점
  • 공격자는 취약점을 이용하여 중요한 파일(데이터베이스 연동 파일 등)을 다운받을 수 있다.

 

② 공격과정

  1. 파일 다운로드 시, URL 파라미터를 살펴 실제 저장된 파일명과 원본 파일명을 유추한다.(ex. real_name=1234&show_name=show)
  2. 파일 다운로드 취약점이 존재하는 페이지면 실제 파일명을 의미하는 파라미터를 조작해 허용되지 않는 파일을 다운로드 한다.

 

③ 취약점 판단기준

  • 게시판, 자료실 등 파일 다운로드가 가능한 페이지의 URL/파라미터를 조작해 임의의 파일 다운로드가 가능할 경우 취약한 것으로 판단한다. 
    • URL/파라미터를 조작해 웹 루트 상위로 접근 시도
    • URL/파라미터를 조작해 비정상적인 파일 다운로드 시도

 

④ 대응책

  • (whitelist 생성) 사용자가 입력하는 파일 경로와 이름에 대해 허용하는 경로 이외의 디렉터리와 파일에 접근할 수 없도록 처리한다
  • (필터링 소스코드 작성) 사용자 입력값에 대해 파일 경로를 변경할 수 있는 문자열(ex. ../..\ 등)을 필터링하도록 소스코드를 작성한다.
  • (방화벽 필터링 룰셋 적용)웹 방화벽 등 필터링이 가능한 보안장비를 운영중이라면 필터링 룰셋을 적용한다.