ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Webhacking.kr 1번 Cookie 문제
    WeekHack/WebHacking 2019. 3. 15. 02:15
    반응형
    SMALL

    안녕하세요. Luke입니다. Webhacking.kr 1번 문제 쿠키문제를 가져왔습니다. 해당 문제는 예전에 한번 푼적이 있는데 Webhacking.kr 올클리어를 위해서 계정 다시 파고 1번부터 다시 풀고 있습니다. Weekhack 진행하고 난 뒤에 이 문제 풀이를 포스팅한적 없어서 다시 한번 풀이합니다.


    일단 1번 문제를 들어가면 아래 그림과 같이 나오게 됩니다. 아래 index.phps를 클릭하시면 소스코드를 볼 수 있습니다.

    소스코드는 아래와 같습니다


    <?
    if(!$_COOKIE[user_lv])
    {
    SetCookie("user_lv","1");
    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>
    <?

    $password
    ="????";

    if(
    eregi("[^0-9,.]",$_COOKIE[user_lv])) $_COOKIE[user_lv]=1;

    if(
    $_COOKIE[user_lv]>=6$_COOKIE[user_lv]=1;

    if(
    $_COOKIE[user_lv]>5) @solve();

    echo(
    "<br>level : $_COOKIE[user_lv]");

    ?>
    <br>
    <pre>
    <a onclick=location.href='index.phps'>----- index.phps -----</a>
    </body>
    </html>


    간단히 php소스를 해석해보겠습니다.


    1. user_lv 쿠키가 없을 경우 user_lv쿠키를 생성해 1이라는 값을 저장합니다.

    2. user_lv 쿠키가 0-9가 아닐 경우 user_lv 쿠키를 1로 변경합니다.

    3. user_lv 쿠키가 6이상일 경우 user_lv 쿠키를 1로 변경합니다.

    4. user_lv 쿠키가 5보다 클 경우 문제가 풀리게 됩니다.


    그럼 해당 소스에서 알 수 있었던 것은 5보다 크나, 6이상은 아닌 수를 찾아야 합니다. 자연수에서 찾는다면 그런 수는 없겠으나, 소수까지도 생각해보면 무수히 많은 수가 나오게 됩니다. 저는 그 중 가장 가운데 값인 5.5를 user_lv쿠키 값에 넣어보았습니다.

    그러고 나서 새로고침하니...

    문제가 풀리게 되었습니다!

    반응형
    LIST

    댓글

Copyright ⓒ 2019, WeekHack