파일 업로드 취약점이란?
- 웹 어플리케이션에서 업로드 파일에 대한 사전 체크를 하지 않을 경우, 허가되지 않은 파일이 웹서버로 업로드 될 수 있는 취약점
- 웹 어플리케이션에서 업로드하는 파일 타입이나 확장자를 체크하지 않을 경우, 웹쉘(webshell)이 업로드 되어 서버에서 악의적인 명령이 수행되거나, 악성코드 파일이 업로드되어 이를 다운받은 사용자 PC가 침하사고를 당할 수 있음
- 또는 다량의 아주 큰 파일을 연속적으로 전송하여 서버 부하 유발
웹쉘(Webshell)
- 악의적으로 웹 서버에 업로드 및 설치된 후 원격으로 웹 인터페이스를 통해 실행되어 대상 시스템의 정보 유출 및 변조, 시스템 명령 실행, 원격 제어 등을 수행할 수 있는 Server side script를 의미.
- JSP, ASP, PHP 등 다양한 언어로 제작됨
파일 업로드 취약점 대응책
- 업로드 파일에 대한 파일 타입 검증
- 업로드 파일에 대한 확장자 검증(화이트리스트 정책 활용)
- FileMatch 지시자(파일에 대한 요청이 들어왔을 때 정규표현식으로 지정한 패턴과의 일치 여부를 판단해줌)를 이용하여 *.ph, *.inc, *.lib 등의 파일에 대한 직접 URL 호출 차단 설정
- 업로드 파일 전용 디렉토리를 별도로 생성하고, 해당 디렉토리에 있는 서버 사이드 스크립트가 실행되지 않도록 설정하거나, 직접 URL 호출을 차단
- AddType 지시자를 이용하여 서버서 사이드 스크립트 확장자(.php 등)에 대해 MIME 타입을 text/html로 조정하여 php 스크립트가 아닌 HTML 문서로 처리되도록 함
- 업로드 파일 개수나 크기(LimitRequestBody 지시자 사용) 제한
'정보보안기사&CISSP관련 > Application Security' 카테고리의 다른 글
[Day 47] Web Log Format (0) | 2020.09.26 |
---|---|
[Day 46] 웹 애플리케이션 개발 보안 요구사항 (0) | 2020.09.25 |
[Day 44] XSS, CSRF (0) | 2020.09.23 |
[Day 43] HTTP 특징 (0) | 2020.09.22 |
[Day 42] HTTP Status Code (0) | 2020.09.21 |