반응형
* 파일 다운로드 취약점 : 웹 상 파일 다운로드 시, 경로 및 파일명을 파라미터로 받아 처리하는 경우, 적절한 필터링이 없어 경로 및 파일명 조작이 가능할 시, 허용되지 않은 파일을 다운 받을 수 있는 취약점
* Directory Traversal Attack : Traversal은 여기저기 이동한다는 의미로, 허가되지 않은 디렉터리나, 파일 경로를 이동하며 접근하는 공격
* 취약점 판단 기준 : URL/파라미터 조작을 통해 임의 파일 경로 접근, 또는 파일 다운로드가 가능할 시, 취약
* 대응책
1) 허용하는 경로 이외에 디렉터리와 파일에 접근할 수 없도록 처리(문자열 필터링 등 블랙리스트 기반 차단 적용)
- (유닉스/리눅스) ../, ./
- (윈도우) ..\, .\
// 다운로드 파일명에 대해 블랙 리스트 기반 차단 적용 함수 생성
function check_download($file){
// 허용하지 않을 문자 블랙 리스트 지정 (../, ./, %, ..\, .\ 등)
$black_list = array('\,\,\/','\,\/','\%','../','./');
$lowerFile = strtolower($file);
for($i=0; $i<count($black_list); $i++){
$is_unsafe=eregi($black_list[$i],$lowerFile);
if($is_unsafe){ break; }
}
return $is_unsafe;
}
~~~
if(trim($real_name) != ""){
if(check_download($real_name)){ // 블랙리스트 문자 포함할 시 경고 메세지 출력
echo("<script>alert('다운로드를 허용하지 않는 파일명/경로 입니다.');<script>");
exit;
}
}
else{ exit; }
$file_path = "./data/".$real_name;
~~~
- 이 외에도 URL Encoding 등을 적용하여, 다양한 방식으로 경로 설정 및 공격을 하므로, 철저한 차단 설정이 필요
반응형
'Information Security > Hacking' 카테고리의 다른 글
불충분한 세션 관리 취약점 (Insufficient Session Management Vulnerability) (0) | 2021.02.15 |
---|---|
파일 삽입 취약점 (File Inclusion Vulnerability) (0) | 2021.02.15 |
파일 업로드 취약점 (File Upload Vulnerability) (0) | 2021.02.15 |
웹 상 운영체제 명령어 실행 (OS Command Execution on Web) (0) | 2021.02.14 |
정적, 동적 분석 (Static, Dynamic Analysis) (0) | 2021.01.09 |