본문 바로가기

모의 해킹/Web

파일 업로드 취약점( 1 - 1 )

※본 포스팅은 WEB HACKING 서버 침투 기법(유현수 지음) 책을 참고, 실습하여 작성한 포스팅입니다.

※본 포스팅은 모의해킹 실습을 위한 가상 환경이며, 실제 공격 및 각종 사건 사고에 법적 책임을 지지 않습니다.

 

안녕하세요 보안돌이 입니다.

오늘은 웹 서버 침투 기법 중 가장 유용한 공격 기술 파일 업로드 취약점에 대해 배워 보겠습니다.

 

파일 업로드 취약점이란?

ㄴ 주로 게시판 등 파일을 올릴 수 있는 곳에 파일 업로드 기능을 약용하여 시스템 권한을 획득할 수 있는 취약점을 의미합니다.

 

※이 취약점은 웹서버에서 사용하는 CGI 스크립트 확장자로 파일 업로드 및 웹 브라우저로 열람 및 실행이 가능해야 취약점이 성립됩니다.

 

■CGI란 공통 게이트웨이 인터페이스(common gateway interface)의 약자로, 웹서버와 외부 프로그램 사이에서 정보를 주고받는 방법이나 규약들을 말합니다.

 

 

파일 업로드 취약점 예시 (실습 환경 : CentOs 6.9)

※ 본 실습 전에 웹 서버를 구성하여야 합니다.

■예제 소스 git링크 : github.com/KimMinJun653/web_example

 

KimMinJun653/web_example

보안돌이 블로그 Web 예제 소스 업로드. Contribute to KimMinJun653/web_example development by creating an account on GitHub.

github.com

upload.html

upload.php

 

두 파일을 /var/www/html 에 추가하여 줍니다.

또한 "upload.php"의 소스코드에 저장 경로로 설정된

"uploads" 디렉터리를 생성하고 chmod 777 명령어를 이용하여 권한을 부여합니다.

 

그 후 자신의 IP를 확인하여 접속합니다.

접속 경로는 http://자신의ip/upload.html 입니다.

정상적으로 작성하였으면 위와 같은 창이 표시됩니다.

파일 선택, 업로드를 통하여 웹쉘 c99.php 파일을 업로드합니다.

 

본 실습에 사용한 웹쉘은 c99이며 아래 공식 사이트에서 다운 가능합니다.

※c99파일 다운로드 링크 : www.r57c99.com/

 

R57 Shell C99 Shell Shell TXT Shell R57.php c99.php

 

www.r57c99.com

업로드 후 해당 경로(http://자신의 ip/uploads/c99.php)로 접속하면

정상적으로 웹 쉘이 실행될 것입니다.


다음 시간에는 파일 업로드 대응 방안

화이트리스트, 블랙리스트 필터링 두 가지 방법 중

블랙리스트 대응방안 및 우회 기법에 대해 배워 보겠습니다.

 

감사합니다.