webhacking.kr 01번 문제
<?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>");
}
?>
사용자의 쿠키를 설정해주는 부분이다. 'user_lv' 쿠키를 값 "1"로 설정하고, 유효기간을 30일로 설정한다.
<?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']}";
?>
if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
!is_numeric 은 특정 값이 숫자인지 아닌지 확인하는 함수에 부정 연산자 ! 를 합한것.
즉 쿠키값이 숫자가 아니라면 쿠키값을 1로 설정한다는 뜻.
if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;
쿠키값이 4보다 크거나 같다면 1로 설정한다는 뜻.
if($_COOKIE['user_lv']>3) solve(1);
쿠키값이 3보다 크다면 문제 해결
즉 3보다크고 4보다 작은 숫자로 쿠키값을 설정하면 문제가 해결 될 것.
그럼 3.1이나 3.2 등등 소수로 해결하면 될 것이다.
F12를 누르고 쿠키값 설정하는 곳에 들어가면 user_lv이 1로 설정되어있다. 여기를 3.4로 바꾼다음 새로고침 해보았다.
문제 해결!