본문 바로가기
Security Project

43. 파일 업로드 취약점 조건 및 우회

by 귀멸 2023. 1. 23.

1. 파일 업로드 취약점 조건

  • 업로드할 확장자가 허용되어야 함
  • 업로드한 파일의 절대 경로를 알 수 있다
  • 업로드한 파일의 실행권한이 있다

 

2. 파일 업로드 취약점 우회

  • 자바스크립트 우회 (Burp를 통해 자바스크립트 스크리닝 구문을 삭제하여 우회)
  • 블랙리스트 방식 우회 (서버사이드 스크립트 차단 시)

    각 환경 별 사용할 수 있는 스크립트
PHP 환경 php3, php5, phtml
jsp 환경 jsp, JSP, JsP, js%70
asp 환경(IIS 환경)  sp, aspx, asa, cer, asx
  • 화이트리스트 방식 우회 (블랙리스트와 반대로 허용할 확장자를 지정)
    우회하기 가장 힘듦 →  IIS 취약점, apach 취약점을 이용
    Ex) jpg, png, doc, pdf 만을 허용한다고 가정하면

shell.asp;jpg 파일 업로드가 되고 실행이 된다
화이트리스트로 올라가는 파일을 검증할 때 확장자를 파일명의 뒤에서부터 판단
IIS에서 올라간 스크립트를 실행 할 때는 앞쪽부터 읽어서 asp를 읽는 순간 asp라고 판단

null값, ;을 이용하여 마침이라는 의미를 주는 것 (타쿠대디 블로그에서 심화 내용 참고)

 

  • 윈도우 권한 문제 (시스템 권한 획득을 위해)
    파일 업로드한 웹쉘은 인터넷 계정 권한, IIS 권한으로 일반 사용자 권한보다 낮음
    윈도우에서는 cmd.exe 사용자 권한 이상에서 실행

    1) 동일한 환경의 cmd.exe 파일을 구한다.
    2) cmd.exe에 everyone, iis 실행권한 부여
    3) 권한 부여된 cmd.exe 업로드 (조건)
    4) cmd.asp가 올린 cmd.exe 파일을 절대 경로를 지정하여 바라보게 만든다.

3. Weevely 활용한 파일 업로드 우회
Weevely는 Kali Linux 도구로 웹쉘을 생성해 주는데
웹쉘 차단 솔루션의 스크리닝을 회피할 수 있도록 파일을 난독화하여 생성한다.

파일을 업로드하고 URL 절대경로를 통해 칼리에서 희생자와 공격자 간의 세션을 맺어준다.

help로 명령어 모듈을 확인하고 사용할 수 있다.

댓글