[모의해킹 실습] 파일 다운로드 취약 페이지 구현 및 공격 실습

파일다운로드 취약점은 공격자가 파일 다운로드 기능을 이용하여 사이트에 포함된 주요 파일을 다운로드 있는 취약점입니다. 이는 파일을 다운받는 기능이 포함된 페이지에서 입력되는 경로를 검증하지 않는 경우 임의의 문자나 주요 파일 명을 입력하여 서버의 디렉터리를 벗어나 임의의 위치에 있는 파일을 열람하거나 다운받을 있습니다.

 

1. 공격 원리

파일 다운로드 취약점은 다음의 경우에 발생합니다.

No.

원인

상세

1

파일 경로와 파일명 노출

파일 다운로드 시 해당 파일의 상대경로 또는 절대경로를 사용하는 경우

다운로드 모듈이 파일의 경로나 이름을 파라미터로 사용하는 경우

2

파일 경로와 파일명 필터링 부족

../(상위 디렉터리)를 이용한 Web Root 상위 디렉터리 접근이 가능한 경우

파라미터 변조를 통해 접근이 허용되지 않은 파일에 접근이 가능한 경우

 

위의 조건이 갖추어 졌을 다운로드 경로와 대상을 조작 요청을 보내면 허가되지 않은 파일을 다운로드하며 서버의 설정정보, 계정 정보가 노출되는 문제가 발생합니다.

 

2. 공격 실습

No.

실습 위치

비고

1

http://localhost/freeboard/read

게시판 게시글 읽기 기능

2

http://localhost/freeboard/upload/EQST.php

파일 다운로드

 

 

 

 

Step1:게시판에서 파일 다운로드 기능을 확인합니다. 경로와 파일명을 파라미터로 사용하는 것을 확인합니다.

다운로드 경로와 파일명 확인

 

Step2: 경로와 파일명 변수를 변조하여 시스템 경로의 설정 파일을 다운로드합니다.

다운로드 경로 및 파일명 변조

파일 다운로드 , 파일명을 직접 코드 상에서 사용하거나 입력받지 않도록 하며 게시판 이름과 게시물 번호를 이용해 서버측에서 데이터베이스 검색을 통해 해당 파일을 다운받을 있도록 합니다. 다운로드 위치는 특정 데이터 저장소를 지정하고 루트 디렉터리 상위로 이동되지 않도록 설정합니다.

반응형