ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] 43번 풀이
    Wargame/webhacking.kr (old) 2019. 5. 7. 20:00


    파일 업로드 취약점 문제로 웹 쉘(Web Shell)을 업로드 하는 문제이다.


    파일 업로드 취약점

    업로드 할 수 있는 게시판 등을 이용하여 악성 서버 스크립트(웹 쉘)를 해당 페이지에 심어

    악성코드가 실행되도록 하는 취약점


    웹 쉘(Web Shell)이란?

    원격에서 웹 서버에 명령을 수행할 수 있도록 작성한 웹 스크립트의 형태를 가지는 파일

    (php, asp, jsp, cgi...)


    보통 파일 업로드 기능에는 텍스트 파일이나 이미지 파일만 업로드 가능하게 설정한다.


    [ 업로드 파일 제한 우회 방법 ]

    1. 프록시 툴을 이용한 Content-Type 검사 우회

    2. .htaccess 파일을 이용한 확장자 우회

    3. unix의 경우 파일명에 %00 %zz ; 를 포함시켜 확장자 검사 우회

    4. 프록시 툴을 이용한 Client Side Script 코드 우회


    문제의 hint는 file type이다.

    fiile type을 우회하여 파일을 업로드하는 문제인 것 같다. 어떤 파일이 업로드되는지 알아보았다.


    1. .txt


    2. .png .jpeg



    3. .php



    이미지 파일만 업로드 가능하게 설정되어 있다.

    콘텐츠 유형을 우회하기 위하여 Content-Type 검사를 우회하는 방법을 이용하였다.

    (php 파일을 이미지 파일인 것처럼 Content-Type을 수정해준다.)


    Fiddler를 이용하여

    우선 이미지 파일의 Content-Type을 알아내기 위해 이미지 파일 업로드 request를 잡았다.



    Content-Type: image/jpeg


    웹 쉘(.php)를 업로드하는 request를 잡았다.



    Content-Type: application/octet-stream


    .php의 Content-Type을 image/jpeg로 수정하여 request를 보내면

    php 파일의 타입이 이미지 파일인 것처럼 인식되어 업로드가 가능해진다.




    Content-Type

    MIME-Type의 하나로 어떤 종류의 파일 Stream인지 알려주기 위해 사용


    [ MIME-Type 및 확장자명 정리 ] http://www.webmadang.net/community/community.do?action=read&boardid=5001&page=1&seq=3


    'Wargame > webhacking.kr (old)' 카테고리의 다른 글

    [Webhacking.kr] 45번 풀이  (0) 2019.05.08
    [Webhacking.kr] 44번 풀이  (0) 2019.05.08
    [Webhacking.kr] 42번 풀이  (0) 2019.05.07
    [Webhacking.kr] 41번 풀이  (0) 2019.05.07
    [Webhacking.kr] 40번 풀이  (0) 2019.05.07

    댓글

@Jo Grini's Blog