여기 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 |