https://dreamhack.io/wargame/challenges/38
php로 작성된 파일 저장 서비스입니다.
파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다.
접속 시 ‘/upload’ 에 들어가서 임의의 ‘.png’ 파일을 업로드 해보았다. 결과는 아래와 같다.
‘uploads/’ 디렉터리 하위에 업로드한 파일이 저장되는 것을 알 수 있다. 현재 경로는 ‘/uploads/’ 디렉터리 한 단계 상위이고, 플래그 파일은 ‘/flag.txt’ 에 저장되어있기때문에 ‘webshell.php’ 을 업로드해야한다는 결론을 낼 수 있다.
아래와 같이 작성했다.
<?php
system("cat /flag.txt");
?>
php 의 ‘system()’ 을 사용하여 ‘/flag.txt’ 의 내용을 읽는 명령을 실행한다. 해당 파일을 업로드한 결과는 다음과 같다.
정상적으로 파일이 업로드 되었으며, 저장된 것을 확인 후, ‘/List’ 에서 내용을 확인하면 플래그를 확인할 수 있다.
아래와 같이 FLAG를 얻을 수 있다.