티스토리 뷰
이전에 작성한 업로드 취약점과 형제격으로 함께 이야기하는 취약점이 다운로드 취약점입니다. 만약 다운로드 취약점이 발생한다면 소스코드를 다운로드하여 서비스의 취약점을 쉽게 분석을 할 수 있고, 중요파일을 다운로드하여 익스플로잇 등에 이용도 가능하죠.
그동안 만나본 다운로드 취약점은 사실 케이스가 다양하지는 않았습니다. 업로드와는 다르게 다운로드 로직은 매우 명확하기 때문이죠.
01. 파일명 및 파일경로 검증
02. 다운로드 파일에 대한 권한검증
03. 웹서버 설정미흡에 따른 중요파일 다운로드
제가 만나보지 못한 다양한 케이스가 있을 수 있으니 이점 참고 부탁드립니다.
01. 파일명 및 파일경로 검증
다운로드 취약점의 대부분이 이 내용에 해당될 것입니다. 서버 외부로부터 전달받은 다운로드 하려는 파일의 파일명 또는 파일경로 정보에 경로를 조작할 수 있는 특수기호( \, /, . 등 )의 포함여부를 검증하지 않고 그대로 사용할 경우, 경로를 조작할 수 있는 입력값을 전달하여 소스코드, DB접속정보가 저장된 Config 파일 등 중요파일을 다운로드 할 수 있게 됩니다.
다운로드 취약점을 방지하는 가장 좋은 방법은 다운로드 하려는 파일의 식별값으로 파일명 및 파일경로를 전달받지 않고 인덱스값 같은 고유식별값을 사용하여 시스템 내 중요파일에 접근할 수 없도록 방지하는 것입니다. 단, 서비스에 따라 전달하는 인덱스값에 대해서 요청자가 적합한 권한이 있는지는 확인은 해줘야 할 것입니다.
02. 다운로드 파일에 대한 권한검증
위에 언급한 내용의 연장선으로 특정 서비스에서 사용자 권한 또는 레벨 등으로 접근이 가능한 리소스 등이 존재하는데, 이때 인덱스 값을 사용 또는 다운로드 권한이 있는 디렉토리의 파일을 요청한 것이든 실제 다운로드 하려는 파일 자체에 대한 권한 검증을 하지 않는 경우가 있습니다. 예를들어 인사정보가 저장된 특정 파일을 다운로드 할 수 있는 기능이 존재하는데, 인사팀이 아닌 다른 팀에서 해당 파일을 다운로드 할 수가 있다는 것이죠. 때문에 다운로드 요청값에 대해 경로를 나타낼 수 있는 특수기호가 포함되어 있지 않다고 하더라도, 실제 다운되는 파일에 대해 적절한 권한이 있는지 여부도 검증이 필요합니다.
03. 웹서버 설정미흡
마지막 케이스는 서비스 로직의 문제가 아닌 웹서버 설정이 잘못된 경우에 발생할 수 있는 취약점입니다. 간혹 웹서버 설정을 잘못하여 URL을 변경하여 WEB-INF 디렉토리에 직접 접근이 가능한 경우가 있습니다.
http://www.service.com/WEB-INF/web.xml
http://www.service.com/WEB-INF/Classes/.../test.class
이런 경우에 WEB-INF를 포함한 하위 디렉토리의 리소스에 직접접근이 가능해집니다. web.xml을 통해 어플리케이션 설정을 확인하거나, db.properties와 같이 Database 접속정보를 탈취할 수도 있고, classes 디렉토리에 접근하여 소스코드를 다운로드할 수도 있게 됩니다. 이를 방지하기 위해 어플리케이션보다 웹서버의 설정을 정확히 구성해줘야 할 것입니다.
Fin
'Web Analytics > Vulnerabilities' 카테고리의 다른 글
인증실패 횟수 관련 분석 (0) | 2019.04.14 |
---|---|
Password 관련 취약점 분석 (0) | 2019.03.09 |
Upload 취약점 분석 (0) | 2019.03.03 |
SQL Injection 취약점 분석 (0) | 2019.03.03 |
XSS(Cross Site Script) 취약점 분석 (0) | 2019.03.01 |
- Total
- Today
- Yesterday