TeamH4C

[빡공팟 5기] W6 : DVWA 실습 - File Upload (medium)

이유갬 2022. 10. 30. 23:19

[  실습 목표  ]

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() 함수를 호출하고 명령어를 실행한 것이므로 실습 목표를 달성했다!