본문 바로가기
Hacking/DreamHack

[DreamHack] 드림핵 phpreg

by st-og 2023. 11. 14.

 


 

풀이

사이트에 접속하게 되면 Nickname과 Password를 입력하는 input 박스를 확인할 수 있다.

 

 

해당 input 박스에 알맞은 값을 넣어야 다음 Step2로 넘어갈 수 있다.

해당 코드를 확인해 보자

 

 

if ($_SERVER["REQUEST_METHOD"] == "POST") {
            $input_name = $_POST["input1"] ? $_POST["input1"] : "";
            $input_pw = $_POST["input2"] ? $_POST["input2"] : "";

 

각 input 박스를 생성 후 POST로 입력을 받는다.

 

if (preg_match("/[a-zA-Z]/", $input_pw)) {
              echo "alphabet in the pw :(";
            }

 

Password에 a~z까지 대소문자의 값들이 들어올 경우 부적합하다고 판단한다.

 

else{
              $name = preg_replace("/nyang/i", "", $input_name);
              $pw = preg_replace("/\d*\@\d{2,3}(31)+[^0-8\"]\!/", "d4y0r50ng", $input_pw);

 

Nickname에 nyang라는 값의 대소문자가 들어올 경우 Null로 처리를 하며

Password의 값을 정규표현식을 통해 d4y0r50ng의 값으로 변환한다.

 

정규 표현식의 의미는 아래 표를 통해 확인할 수 있다.

 

정규 표현식 의미
\d* 갯수 상관없는 숫자가 포함되어야 함
\@ 문자 '@'가 포함되어야 함
\d{2,3} 숫자가 2~3개 포함 되어야 함
(31)+ 31의 숫자가 한개 이상 포함되어야 함
[^0-8] 0~8까지의 숫자는 포함되지 않아야 함 (== 9)
\! 문자 '!'가 포함되어야 함

 

if ($name === "dnyang0310" && $pw === "d4y0r50ng+1+13") {
                echo '<h4>Step 2 : Almost done...</h4><div class="door_box"><div class="door_black"></div><div class="door"><div class="door_cir"></div></div></div>';

 

올바른 name과 pw의 값을 명시하고 있다.

 

name값은 nyang값을 넣게될 경우 ' '로 치환이 되기 때문에 dnyang0310 값 안에 새로운 nyang값을 넣어서 입력을 하면 된다. (ex) dnyanyangng0310)

 

pw값은 위의 정규표현식에 맞는 값을 넣을 경우 d4y0r50ng 값으로 변환시켜주기 때문에 해당 식에 맞는 값을 넣고 뒤에 +1+13을 붙여주면 된다. (ex) 12@12319!+1+13)

 

해당 값을 입력하게 되면 Step2로 넘어갈 수 있다.

 

 

Step2에서는 command를 입력하면 리눅스환경에서의 command를 실행시킬 수 있다.

flag의 값은../dream/flag.txt에 저장되어 있으니 해당 값을 확인하면 된다.

 

 

하지만 command에 flag라는 값이 들어갈 경우 에러를 출력하므로 이것을 우회할 방법을 찾아야 한다.

이때 와일드카드를 사용해서 flag값을 넣지 않고 파일을 확인할 수 있다.

 

*이라는 와일드카드를 사용하여 해당 경로의 모든 파일을 확인한다는 명령을 내렸다.

해당 경로에는 flag.txt 하나의 파일 밖에 없었으므로 flag.txt가 확인이 가능해진다.

 

'Hacking > DreamHack' 카테고리의 다른 글

[DreamHack] 드림핵 random-test  (1) 2023.11.17
[DreamHack] 드림핵 Type c-j  (0) 2023.11.14
[DreamHack] 드림핵 baby-union  (1) 2023.11.14
[DreamHack] 드림핵 Carve Party  (0) 2023.11.13
[Dream Hack] 드림핵 ex-reg-ex  (0) 2023.11.13