드림핵 php7cmp4re

php7.4로 작성됐다고 명시되어있어서 google에 php7.4취약점 먼저 찾아봤지만

구글에는 침투목적 밖에 안보여서 php 메뉴얼을 확인해봤습니다.

php 숫자문자열 메뉴얼을 확인하니깐

$foo = 1 + “bob-1.3e3″이면은 TypeError가 나온다는걸 확인하였습니다.

근데 $foo = 1 + “10 Small Pigs” 문자열에 숫자가 먼저나오면 Type error를 일으키지 않는것도 확인

php 메뉴얼 볼 생각한 이유는 문제를 다운 받으니깐 check.php 파일안에 문자열에 관한 코드가 있었음

<?php
    require_once('flag.php');
    error_reporting(0);
    // POST request
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
      $input_1 = $_POST["input1"] ? $_POST["input1"] : "";
      $input_2 = $_POST["input2"] ? $_POST["input2"] : "";
      sleep(1);

      if($input_1 != "" && $input_2 != ""){
        if(strlen($input_1) < 4){
          if($input_1 < "8" && $input_1 < "7.A" && $input_1 > "7.9"){
            if(strlen($input_2) < 3 && strlen($input_2) > 1){
              if($input_2 < 74 && $input_2 > "74"){
                echo "</br></br></br><pre>FLAG\n";
                echo $flag;
                echo "</pre>";
              } else echo "<br><br><br><h4>Good try.</h4>";
            } else echo "<br><br><br><h4>Good try.</h4><br>";
          } else echo "<br><br><br><h4>Try again.</h4><br>";
        } else echo "<br><br><br><h4>Try again.</h4><br>";
      } else{
        echo '<br><br><br><h4>Fill the input box.</h4>';
      }
    } else echo "<br><br><br><h3>WHat??!</h3>";
    ?> 

처음에는 조건식보고 대충 생각하다가 7.A라고 있는거보고 아스키 코드로 푸는거라고 느낌와서 아스키코드 대입하면서 풀어봄

그래서 input_1 < 56 < 55 46 57 < 55 46 65

strlen($input_1) < 4보다 작고 57~65사이의 값을 찾으면된다.

3글자니깐 57~65사이의 부호 아무거나 합쳐서 넣으면된다.

input_1 = 7.:

input_2는 74보다는 작고 “74”보다는 크니깐

“7”은 55 “4” 는 52이고 74보다는 작은 부호를 집어넣으면된다.

input_2는 2글자니깐

input_2 = ::

FLAG

Categorized in:

Computer,