Ye0ngJae

[HackCTF] "Guess me" 문제풀이 본문

정보보안/워게임

[HackCTF] "Guess me" 문제풀이

Ye0ngJae 2022. 3. 8. 17:35
728x90

문제

 

 

 

 

풀이

더보기

Secret 코드를 맞추면 flag를 뱉어낸다고 한다. 입력창과 제출버튼이 하나 있고, 문제 코드로 보이는 코드가 보이고 있다. 우선 코드를 살펴보자

 

<?php
      $filename = 'secret.txt';
      extract($_GET);
      if (isset($guess)) {
        $secretcode = trim(file_get_contents($filename));
        if ($guess === $secretcode) {
          $flag = file_get_contents('flag.txt');
          echo "<p>flag is"." $flag</p>";
        } else {
          echo "<p>비밀 코드는 $guess (이)가 아닙니다. </p>";
        }
      }
?>

 

Secret.txt을 긁어와 secretcode에 넣고 입력값이 scretcode와 같으면 flag를 출력하는 코드이다. extract($_GET) 함수를 보고 순간 php의 extract 취약점이 떠올랐다. 

 

 

php extract 취약점을 하기 위해 URL 파라미터 뒤에다 ?filename=& 을 붙이면 php extract 취약점이 발생하게 된다.

Flag 값이 나오게 된다

 

728x90

'정보보안 > 워게임' 카테고리의 다른 글

[HackCTF] "Login" 문제풀이  (0) 2022.03.08
[HackCTF] "Read File" 문제풀이  (1) 2022.03.08
[HackCTF] "보물" 문제풀이  (0) 2022.03.08
[HackCTF] "Button" 문제풀이  (0) 2022.03.08
[HackCTF] "Hidden" 문제풀이  (0) 2022.03.08