[그림 1]

 

level표시와 view-source라는 부분이 눈에 띄인다.

view-source를 눌러 소스코드를 확인해 보자.

 

[그림 2]

소스코드가 보이는데 phphtml로 작성되어져 있다.
검은색 글씨로 된 html 코드는 [그림 1]에 보이는 화면을 나타내는 것이기에 신경을 쓰지 않아도 될거 같다.

<?php> php구문을 한번 살펴 보자 ‘../../’ 2개 위에 위치해 있는 ‘config.php’파일을 불러온다(포함시킨다). 그 다음에는 if문으로 조건을 걸어 주었다.

 

{$_GET[‘view-source’] == 1} {view_source(); }

$_GET[‘view-source’] 1이면 소스코드를 보여준다는 구문이다.

이 구문이 정상적으로 실행이 되어 클라이언트인 나에게 코드가 보여지는 것이다.

*이부분은 유사한 형태로 계속해서 나온다. 뒷 풀이에서는 따로 다루지 않겠다.

 

if(!$_COOKIE['user_lv']){

SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");

SetCookie 형식을 보면 SetCookie(“쿠키명”, “쿠키값”, “만료시간”,“사용가능 위치”); 로 되어있으면 여기서 user_lv라는 값은 쿠키이름을 나타낸다.

만료시간을 보면 약 한 달로 설정되어있다.(86400 = 60 x 60 x 24 , 24시간)

 

[그림 3]

이번에는 하단의 <?php> php구문을 살펴보자 쿠키값을 본격적으로 검사하는 구문이다.

 

if(!is_numeric($_COOKIE['user_lv'])) 쿠키값이 숫자가 아닐 경우 쿠키값을 1로 설정한다라는 구문이며 is_numeric은 변수 값이 숫자인지를 판별하는 구문이다.

 

기본적으로 쿠키값은 1로 세팅되어져있다.

 

1.if($_COOKIE['user_lv']>=6) 쿠키 값이 6보다 크거나 같을 경우 $_COOKIE['user_lv']=1;

쿠키값을 1로 세팅한다.

 

2. if($_COOKIE['user_lv']>5) 쿠키 값이 5보다 클 경우 문제가 풀리다.

 

위 두 경우가 동시 만족할 때 문제가 풀리도록 설계되어있다.

 

6보다 크거나 같으면 값이 1이 되고 5보다 클 경우 문제가 풀린다. 그렇다면 어떻게 해야될까

56사이에 값이 쿠키값이 되면 문제가 풀린다! [5 < user_lv < 6]

 

그렇다면 쿠키값은 어떻게 바꾸는가? 필자는 chrome 확장프로그램으로 EditThisCookie

를 다운 받아 사용하였다.

[그림 4]

user_lv 값이 1로 나타나는 것을 볼수 있다. 이 값을 56의 사이값으로 바꿔주면 solve!

[그림 5]

난 풀었어서 already solved....

 

이 문제는 Cookie 개념을 위한 문제인거 같다.

'Challenge > webhacking.kr' 카테고리의 다른 글

Webhacking 7번 문제 풀이  (0) 2020.02.03
Webhacking 6번 문제 풀이  (1) 2020.01.30
Webhacking 5번 문제 풀이  (0) 2020.01.30
Webhacking 4번 문제풀이  (0) 2020.01.29
Webhacking 3번 문제풀이  (0) 2020.01.29

+ Recent posts