[webhacking.kr] 1번 문제 풀이[PHP]

최대 1 분 소요

💡 Webhacking.kr challenge(old) 1번 문제에 대한 풀이입니다.

문제

문제 화면

image

소스코드

    <?php
    include "../../config.php";
    if($_GET['view-source'] == 1){ view_source(); }
    if(!$_COOKIE['user_lv']){
        SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");
        echo("<meta http-equiv=refresh content=0>");
    }
    ?>
    <html>
    <head>
    <title>Challenge 1</title>
    </head>
    <body bgcolor=black>
    <center>
    <br><br><br><br><br>
    <font color=white>
    ---------------------<br>
    <?php
    if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
    if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;
    if($_COOKIE['user_lv']>3) solve(1);
    echo "<br>level : {$_COOKIE['user_lv']}";
    ?>
    <br>
    <a href=./?view-source=1>view-source</a>
    </body>
    </html>



풀이

PHP 코드를 읽어보니 사용자가 해방 페이지를 방문하면

 if(!$_COOKIE['user_lv']){
       SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");

위 함수에 의해서 쿠키가 없다면 -> user_lv 이라는 이름으로 쿠키를 생성합니다.

참고) SetCookie(“이름”,”값”,유효기간,경로);

image

두번째 부분을 보면 아래와 같은 로직입니다.

 <?php
    if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
    if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;
    if($_COOKIE['user_lv']>3) solve(1);
    echo "<br>level : {$_COOKIE['user_lv']}";
 ?>
  1. user_lv 쿠키 값에 숫자 값이 아닌 값이 들어가 있으면, 값을 1로 바꾼다.

  2. user_lv 쿠키 값이 4이상이면 1로 바꾼다.

  3. user_lv 쿠키 값이 3초과 이면 통과한다.

결론 -> user_lv 쿠키값에 3~4 사이에 아무 숫자나 넣어준다.

image

바꿔주고 새로고침 하면 성공!

image

댓글남기기