여기 index.phps에 진입한다.

다음과 같은 소스코드가 나오는데, 이 중 php문을 해석해 보자.



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


먼저, eregi함수는 문자를 찾는 함수이다. $_COOKIE[user_lv] 변수가 0~9사이의 숫자와 마침표를 제외한 다른 문자이면 1 반환한다.

, 0~9사이의 숫자와 마침표를 제외한 숫자가 $_COOKIE[user_lv] 들어가 있으면 조건문이 실행되어 $_COOKIE[user_lv] 1 초기화된다.


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

 

조건문에서는 쿠키 레벨이 6보다 크면 $_COOKIE[user_lv] 1 초기화시킨다.



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

 

조건문을 보면, $_COOKIE[user_lv] 5보다 크면 solve();함수가 발동되는 것을 확인할 있다. @ 에러가 나도 에러 내용을 출력하지 않는다는 뜻이다.


따라서 0~9사이의 문자와 마침표 문자가 포함될 있는 6보다 크지 않고 5보다 문자로 쿠키를 변조해 주면 된다. 문자를 5.5 잡고 보았다.

크롬의 EditThisCookie 설치하여 쿠키값을 5.5 변조해 주었다.

그러자 문제가 풀렸다. 이미 문제를 풀어 다음과 같은 화면이 나온 것을 있었다.

'워게임 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 18번  (1) 2016.09.01
webhacking.kr 16번  (0) 2016.09.01
webhacking.kr 4번  (0) 2016.09.01
Webhacking.kr 39번  (1) 2016.07.10
Webhacking.kr 15번  (0) 2016.07.08

+ Recent posts