[Linux] 웹 사이트 파일 업로드 취약점 공격 [웹 사이트 해킹 / 파일 업로드 취약점]
Nowhere 와 Now here 의 차이

IT/ㄴ Web Site Hacking

[Linux] 웹 사이트 파일 업로드 취약점 공격 [웹 사이트 해킹 / 파일 업로드 취약점]

TIENE 2023. 7. 13. 15:51
반응형

- 웹 사이트의 취약점 중에서 가장 단순한 형태의 취약점이다.

실행가능한 PHP 파일 셸을 업로드하여, 공격 대상 서버를 완전히 제어할 수 있다.

- PHP가 아닌 다른 언어를 사용한다면, 그에 맞는 언어로 올려서 제어할 수도 있다.

- 따라서, 대상에 대한 충분한 정보수집은 필수다.

 

 

- 파일업로드 취약점 공격 테스트를 진행하기에 앞서, 해당 테스트를 진행하기에 알맞은 웹 애플리케이션을 소개한다.

- DVWA라는 웹 어플리케이션으로 웹 사이트의 다양한 취약점을 구성해놓았다.

- 취약점이 어떻게 이루어지는지 파악하고 공부할 수 있는 좋은 웹 애플리케이션이다.

 

[Github : DVWA]

 

GitHub - digininja/DVWA: Damn Vulnerable Web Application (DVWA)

Damn Vulnerable Web Application (DVWA). Contribute to digininja/DVWA development by creating an account on GitHub.

github.com

 

 

 

 

[웹 사이트 파일 업로드 취약점 공격]


1. DVWA에 접속한다.

- Username = admin / Password = password로 접속할 수 있다.

 

2. DVWA Security 강도를 낮추어야한다.

- 최하위 low로 값을 변경한다. 

 

3. 대상 웹사이트가 사진과 같은 이미지 업로드를 허용하는 경우가 있다.

- Browse를 눌러서 적당한 이미지를 업로드해본다.

 

- 정상적으로 업로드가 되었으며, 저장된 디렉토리까지 출력되었다.

 

- 웹 브라우저에서 이동하여, 올렸던 이미지 파일을 볼 수 있다.

- 이렇게, 업로드할 수 있도록 구성된 웹 페이지에 백도어를 업로드하여 서버의 권한을 가져오려고 한다.

 

 


Weevely

- 웹 셸 백도어를 만들어주는 도구다.

- 명령어 개요

weevely generate [password] [file name]
- 백도어 파일을 만들며, 연결할 때의 password까지 지정한다.

weevely [url to file] [password]
- 생성했던 백도어 파일의 password를 입력하여 업로드한 파일과 연결한다.

 

weevely generate 123456798 /root/shell.php

- /root/shell.php라는 이름을 가진 파일을 생성하는데, 연결할 때 필요한 password는 123456789이다.

 

- 해당 파일을 업로드하였다.

- 위에서 이미지를 보았던 것처럼 확인해볼 수 있다.

 

- 파일을 확인했을때, 흰 화면만 나오는데 Shell.php의 파일을 오픈한 것이다.

- 이제, 이 백도어 파일에 연결하여 서버의 권한을 가져올 수 있다.

weevely http://192.168.1.134/dvwa/hackable/uploads/shell.php 123456789

-  password 123456789를 가지고 http://192.168.1.134/dvwa/hackable/uploads/shell.php와 연결한다.

 

- Session이 열리면서, 웹 서버로의 접속이 완료되었다.

- 커널 정보부터 현재 위치 그리고 최상위 디렉토리까지 이동이 가능하다.


 

반응형