📩File Download Vulnerability

DATE : 2024/2/18

File Download Vulnerability

File Download 취약점이란, 공격자가 원하는 파일을 다운로드 할 수 있는 취약점을 말한다.

이때 말하는 파일은 서버에 존재하는 파일로 만약

<?php
	filename = $_GET['fileName'];

	download('/files/'.$fileName);
?>

이와 같은 코드로 사용자에게 파일을 다운로드 해주는 기능이 구현되어 있다고 한다면

우리는 fileName parameter를 활용해 다음과 같이 중요한 파일을

../../../../../../../etc/passwd 

서버로부터 얻을 수 있다.

보통은 누구에게나 어떤 파일이든 제공하지 못하도록 하기 위해

로그인 한 사람에게만 다운로드할 수 있도록 서버에 있는 파일 경로로 직접 접근해서 주는 게 아닌

download.php?fileId=1019

download.php와 같이 파일 다운로드 기능을 담당하는 코드를 따로 작성해 사용한다.

File Inclusion 공격은 서버가 실행해준 결과를 얻기에 적합한 공격이라면 반대로

File Download 공격은 실행되지 않은 형태의 코드 그 자체, 즉 소스 코드를 얻기에 적합한 공격이다.

File Download 대응 방안

File Download 공격의 대응 방안은 File Upload 공격과 동일하다.

File Upload와 마찬가지로 File Download 공격 역시,

서버에 파일을 올려둔 상태로 관리하기 때문에 문제가 발생하는 것!

따라서

(1) DB에 파일을 저장하는 방법이나

(2) NAS server를 이용해 파일을 관리하는 서버를 따로 두는 방법으로

File Upload & File Download 공격을 예방할 수 있다!

Last updated