[ 실습 목표 ]
Execute any PHP function of your choosing on the target system (such as phpinfo() or system()) thanks to this file upload vulnerability.
파일 업로드 취약점을 이용하여 phpinfo() 나 system() 를 실행시키는 것이 실습 목표다!
[ 실습 화면 ]
- 이미지 파일을 업로드 하라는 기능이다.
- 이미지가 아니여도 업로드가 가능한지 확인해보았다.
- html 파일을 올려보니 jpeg 와 png 이미지만 올리라는 에러 메시지가 출력된다.
- php 파일도 올려보았지만 여전히 같은 에러 메시지가 출력된다.
- 이제 소스코드를 확인해보자!
- 경로를 설정해놓고, 업로드 파일의 유형을 설정하고 사이즈도 정해놓았다.
- 하지만 파일명에 대한 필터링은 따로 없고, type 만 검사한다.
- 따라서, 악의적인 파일을 업로드 할 때 패킷을 잡아서 content-type 만 image/png 로 변경하면 업로드가 될 것 같다.
- 시도해보자!
- 우선 셸을 실행시키는 파일을 만든다.
- 그리고 해당 파일을 업로드할 때 패킷을 잡아준다.
- Content-Type 이 text/php 인 것을 확인할 수 있다.
- 이를 image/png 로 변경해주고 Forward 시켰다.
- 업로드에 성공한 것을 볼 수 있다.
- 해당 경로로 이동해보았다.
- 필자가 작성한 파일이 그대로 출력되었고 명령어를 입력해보았다.
- 정상적으로 작동하여 유저의 정보를 가지고 오는 것을 볼 수 있다.
- 결국 코드가 정상적으로 작동하여 system() 함수를 호출하고 명령어를 실행한 것이므로 실습 목표를 달성했다!
'TeamH4C' 카테고리의 다른 글
[빡공팟 5기] W6 : DVWA 실습 - SQL Injection (medium) (0) | 2022.10.30 |
---|---|
[빡공팟 5기] W6 : DVWA 실습 - Insecure CAPTCHA (medium) (0) | 2022.10.30 |
[빡공팟 5기] W6 : DVWA 실습 - File Inclusion (medium) (0) | 2022.10.30 |
[빡공팟 5기] W6 : DVWA 실습 - CSRF (medium) (0) | 2022.10.30 |
[빡공팟 5기] W6 : DVWA 실습 - Brute Force (Medium) (0) | 2022.10.30 |