파일 업로드 우회 기법
① Proxy 툴을 이용해 확장자 검사 우회
- 파일타입 변조 등의 우회 공격을 통해 확장자 검사를 피하는 것
- 업로드 시 파일 유형 정보를 알려주는 MIME는 Content-Type, MIME-Version, Content-Transfer-Encoding 등 세 가지 헤더 정보로 구성
- MIME 형식은 "파일 종류/파일 포맷" 형태로 정의
② IIS 취약점을 이용한 파일 업로드
- CGI 와 관련된 확장자 검사 우회 취약점으로 인해 임의의 파일을 업로드할 수 있는 취약점
- IIS 6.0/5.1/5.0/4.0/3.0/2.0/1.0 에서 발견됨
- URL에서 URI와 파라미터를 구분하는 문자인 세미콜론과 물음표를 이용해 우회 예) webshell.asp;jpg
③ NULL을 이용한 파일 업로드
- C언어에서 NULL(%00) 문자는 문자열의 끝을 의미
- 문자열에 NULL 문자 삽입 시 파일명의 끝으로 인식
- %zz 도 종단 문자로 리눅스 시스템일 경우 우회
④ 확장자 대소문자 구분을 통한 우회
- 서버에서는 php와 PHP 둘 다 php 파일로 인식함
- 소스 코드에서는 대소문자를 구분하기 때문에 .pHP, .pHp 이런식으로 우회
⑤ 확장자 필터링이 있음에도 불구하고 확장자 우회
- .asp 확장자 → .cer .cdx .asa
- .php 확장자 → .php3 .html .htm
- .jsp 확장자 → .war .jspx .jsv .jsw
⑥ .htaccess 설정
- .htaccess 는 아파치 웹 서버의 디렉터리를 설정하는 기본 파일
- 디렉터리 내 파일이 실행될 때 모두 .htaccess 를 거치게 되므로 해당 설정 파일을 이용해 디렉터리 별로 설정을 변경해줄 수 있음
- httpd.conf 서버설정 파일에서 AllowOverride 지시자 부분을 ALL 로 설정, Addtype 설정을 변경해줌
⑦ HTTP 메소드 악용
- HTTP 메소드는 시스템 권한설정 및 불필요한 메소드(PUT, DELETE 등) 의 지원으로 인해 쉘 코드 삽입 및 홈페이지 변조 등에 악용 될 수 있음
파일 업로드 취약점 대응 방안
① 업로드 파일 타입 및 확장자 검증은 화이트리스트 방식을 적용한다.
② 업로드 파일을 위한 전용 디렉터리를 별도로 생성한다.
③ 업로드 파일의 확장자를 검토하여 적절한 파일인지 검사하는 루틴을 삽입하여, 적합한 파일의 확장자 이외의 파일에 대해 업로드가 불가능하도록 하는 필터링 규칙을 서버에서 구현한다.
④ AddType 지시자를 이용해 jsp, asp, php 등 서버 사이드 스크립트 확장자를 text/html로 MIME Type을 재조정하여 Server Side Script가 실행되지 않도록 설정한다.
'Web > Webhacking' 카테고리의 다른 글
크로스사이트 스크립팅 공격 및 우회 기법 (0) | 2022.04.20 |
---|---|
크로스사이트 스크립팅(XSS) (0) | 2022.04.19 |
파일 다운로드 공격 및 우회 기법 (0) | 2022.04.13 |
파일 다운로드(File Download) (0) | 2022.04.13 |
파일 업로드(File Upload) (0) | 2022.03.29 |
댓글