반응형
파일 업로드 취약점이란?
DBD(Drive-By-Download) 공격을 이용해 공격이 이루어지면 일반 클라이언트는 어떠한 액션을 추ㅢ하지 않아도 취약한 사이트를 방문하는 것 만으로도 감염시킬 수 있습니다.
즉, 파일 업로드 기능을 이용하여 시스템 명령어를 실행할 수 있는 웹 프로그램(webshell)을 업로드할 수 있는 취약점입니다.
공격 시나리오
- 파일 업로드 취약점이 존재하는 페이지를 통해 webshell 파일을 업로드 합니다.
- http://서버주소/webshell.php 등의 주소를 통해 업로드한 webshell 파일을 호출합니다.
- 업로드 한 webshell을 이용하여 시스템 명령을 전송합니다. ex) rm -r *
대응방안
- 파일 이름은 전체 검사를 원칙으로 한다.
- 확장자를 분리할 경우 마지막 확장자를 검사한다.
- 허용하는 확장자를 먼저 규정 한 후, 이외의 확장자는 모두 차단한다.
- upload된 파일은 upload 전용 폴더에 저장하고, 저장 시 파일명, 확장자명을 변경한다. (다운로드 시 원래 파일명으로 변경)
- upload전용 폴더의 실행권한을 제거한다.
우회기법
1. urlencode 이용 : %00
→ %00의 뒷 문자열은 웹 서버에서 파일을 저장할 때 null로 인식되는 것을 악용하는 방식
ex) webshell.asp%00.jpg
위 예제의 경우 웹 서버에 저장되는 파일은 webshell.asp 입니다.
728x90
반응형
'웹 개발' 카테고리의 다른 글
JAVA 한글 깨질 경우 인코딩 확인하기 (0) | 2020.01.31 |
---|---|
[java] 파일 확장자 구하기 (0) | 2020.01.30 |
[java] https connection (0) | 2019.12.30 |
java file transfer (0) | 2019.12.27 |
REST API 호출 예제 (0) | 2019.12.23 |