-
[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 댓글