Description
파일 업로드 기능을 악용하여 서버의 권한을 획득하세요 !
먼저 해당 페이지에 접속 시 파일을 업로드 할 수 있는 기능이 존재하는 화면이 보인다.
주어진 파일을 압축해제 한 후 000-default.conf
파일을 확인 시 AllowOverride
값이 All
로 설정되어 있는 것을 볼 수 있다.
또한 src 폴더 안의 upload.php
파일의 코드를 보면, 블랙리스트 기반으로 특정 확장자만 업로드를 제한하고 있는 것을 알 수 있다.
해당 소스코드와 설정을 보면 임의의 파일 확장자를 php로 실행할 수 있도록 업로드 폴더 내 .htaccess
파일을 업로드 하면 flag 값을 얻을 수 있을 것으로 판단되어, jpg 확장자를 php처럼 실행 가능하도록 .htaccess
파일을 작성해서 업로드한다.
.htaccess
와 동일한 경로에 php webshell 코드가 담긴 jpg 파일을 업로드한다.
업로드한 웹쉘 파일을 통해 cmd 명령이 수행되는지 확인 후 /flag
를 입력 시 flag 값을 획득 가능하다.
[flag] : DH{9aeba1a6feed3769ae0915b62db2b4872bec98c2}
.htaccess란
.htaccess 파일은 컨텐츠 제공자가 디렉토리별로 서버 설정을 다르게하고 싶지만 서버 시스템에 root 권한이 없는 경우에 사용하는 설정으로, Apache httpd.conf에서 AllowOverride 옵션에 따라 사용이 가능함