링크를 따라 들어가면 level : 1 출력과 view-source 링크를 제시합니다.
먼저 주어진 소스 링크에 접속해보겠습니다.
접속하면 아래와 같은 소스가 적혀있는 페이지로 넘어갑니다.
if(!$_COOKIE['user_lv']){
SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");
echo("<meta http-equiv=refresh content=0>");
위 구문으로 COOKIE 값을 1로 처음 설정해 준다는 것을 알 수 있습니다.
그럼 되돌아가서 1로 설정되있는지 확인해 보겠습니다.
쿠키값이 두개 존재하는데 user_lv 쿠키 값이 1로 설정되어있는 것을 볼 수 있습니다.
그럼 다음 코드로 넘어가서
<?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']}";
?>
첫줄은 코드는 is_numeric( ) 함수가 숫자인지를 판단해 숫자가 아닐경우 COOKIE[ 'user_lv' ] 값을 1로 되돌립니다.
두번째는 COOKIE[ 'user_lv' ] 값이 >=4, 즉 4와 같거나 클경우 1로 되돌립니다.
세번째는 COOKIE[ 'user_lv' ] 값이 3보다 클경우 solve(1) 즉 해결된다는 의미입니다.
3과 4사이의 값 정수로는 해결이 불가능합니다.
즉 여기서 대입해야 할 값은 실수를 대입해야 해결된다는 의미입니다.
그럼 3.5를 대입해 확인해 보겠습니다.
solve(1) 구문이 실행되며 해결되었습니다.
'Wargame(Web) > Webhacking.kr Writeup' 카테고리의 다른 글
WebHacking Writeup 7번 문제 (0) | 2022.07.06 |
---|---|
Challenge(old)-03번 문제 Writeup (0) | 2022.06.15 |
Challenge(old)-11번 문제 Writeup (0) | 2022.06.15 |
Challenge(old)-10번 문제 Writeup (0) | 2022.06.15 |
Challenge(old)-06번 문제 Writeup (0) | 2022.06.15 |