반응형
1. 웹쉘 체크하는 로직
1) 확장자 체크
업로드 되는 파일의 확장자 체크는 기본 중의 기본.
모든 확장자를 제한하고 허용하는 일부 확장자만 업로드 되도록 제한
2) mime-type 체크
이미지 파일일 경우는 image/pjpeg, image/gif 이겠지만 웹쉘같은 텍스트 형식일 경우는 txt/html 형식
물론 mime-type 은 간단한 조작(proxy tool을 사용)에 의해 우회 가능
3) 특수문자(;,%00,%zz) 체크
파일명에 특수문자가 있는지 체크
2. 우회기법
1) %00, %zz 는 종단문자로서 파일 서버가 리눅스 시스템일 경우 우회 기법으로 사용
예를들어 파일명을 shell.jsp%00.gif 로 업로드 하면 확장자 체크는 우회할 수 있고 서버에 저장되어 호출될때 시스템이 %00,
예를들어 파일명을 shell.jsp%00.gif 로 업로드 하면 확장자 체크는 우회할 수 있고 서버에 저장되어 호출될때 시스템이 %00,
%zz 를 종료문자로 인식하여 shell.jsp 로 호출을 했을때 jsp로 실행되는 경우가 있음
2) 윈도우 IIS의 버그로 인해 shell.asp;.jpg로 업로드할 경우
jpg로 인식하고 확장자 체크 우회하여 업로드 가능하고 정상적으로 실행 됨
(세미콜론(;),물음표(?)는 URL에서 URI와 파라메터의 구분자)
(세미콜론(;),물음표(?)는 URL에서 URI와 파라메터의 구분자)
3) 웹쉘 실행가능 확장자
ASP : cer, cdx, asa
PHP : php3, html, htm
JSP : war
3. 대응방안
1) 업로드 폴더의 스크립트 실행 권한 제거
- 실행이 안되면 스크립트가 텍스트 형태로 나타남
2) 화이트리스트 방식 적용
- 허용된 파일만 실행
3) 파일이름을 난수화하여 저장
4) 확장자를 강제로 변경시켜 저장
5) 파일이름을 Database에 저장
- 바이너리로 저장
6) 물리적으로 서버 분리
- 도메인을 분리
참고 : http://egloos.zum.com/totoriver/v/3271053
반응형
'IT Tech > Application' 카테고리의 다른 글
악성코드 분석 (0) | 2015.11.03 |
---|---|
SROP(SigReturn Oriented Programming) (0) | 2015.10.29 |
RPC 공격 (0) | 2015.10.07 |
Cloaking 기능 (0) | 2015.10.07 |
[용어] SSL (0) | 2015.10.04 |