안녕하세요. Message입니다.
Webhacking.kr Lv1 문제풀이입니다.
------------------------------------------------------------------------------------------------------------------------------------------
1. 문제분석
------------------------------------------------------------------------------------------------------------------------------------------
1번 문제로 접속합니다.
아래와 같은 문구 외에는 별다른게 없습니다.
적혀 있는 index.phps 가 힌트인 것 같습니다.
------------------------------------------------------------------------------------------------------------------------------------------
2. 문제풀이
------------------------------------------------------------------------------------------------------------------------------------------
소스보기를 해봅니다.
index.phps에 onclike 이벤트가 걸려있는것을 확인하고, 클릭합니다.
그럼 아래와 같은 소스를 볼 수 있습니다.
간단한 소스코드 해석을 합니다.
1) 첫번째 PHP 문단 : 쿠키세팅
$_COOKIE라는 PHP의 슈퍼전역변수를 이용하여 user_lv 변수의 쿠키값을 확인합니다.
처음접속했다면 당연히 없을테니 Cookie값이 1 로 세팅될겁니다.
쿠키가 세팅되는 매커니즘을 간단히 메모장으로 테스트해보면 아래와 같습니다.
SetCookie 함수는 다른 함수가 실행되기 이전에 처음에 세팅되어야 하기 때문에
가장 상단에 존재해야 합니다.
2) 두번째 PHP 문단 : COOKIE값 확인
다시한번 $_COOKIE 변수와 정규표현식 [^0-9,.] 을 비교합니다.
대괄호 안에 있는 ^ 문자의 의미는 "해당 문자열을 제외한 나머지가 있으면 True값입니다."
즉, 저희는 저 대괄호 범위 안에 있는 문자열만 입력 가능하다는 뜻이죠.
이후에는 5 < Clear조건 <=6 을 만족하면 @solve() 함수가 실행되는 내용입니다.
Tip. ereg 와 eregi 두개의 함수는 동일 문자열을 검색하는 함수입니다. int ereg(string $pattern , string $string [, array &$regs ]) : 대,소문자 구별 int eregi(string $pattern , string $string [, array &$regs ]) : 대소문자 구별없음 첫번째 인자인 $pattern은 찾을 문자열이 들어가며, 두번째 인자인 $string은 대상 문자열이 들어갑니다. |
이제 문제를 클리어해봅시다.
일단 우리는 접속하자마자 SetCookie() 함수로 인하여 Cookie 값이 1 로 세팅됩니다.
이제 소스코드가 파악이 되었으니 Cooxie 툴바로 Cookie 값만 변경해주면 됩니다.
다음 레벨로 넘어갑니다!
':: 문제풀이 > WebHacking,kr' 카테고리의 다른 글
Red_Message :: webhacking.kr 문제풀이 - Lv5 (0) | 2016.08.12 |
---|---|
Red_Message :: webhacking.kr 문제풀이 - Lv4 (0) | 2016.08.06 |
Red_Message :: webhacking.kr 문제풀이 - Lv3 (0) | 2016.08.05 |
Red_Message :: webhacking.kr 문제풀이 - Lv2 (0) | 2016.07.30 |
Red_Message :: webhacking.kr 문제풀이 - 회원가입 (0) | 2016.07.30 |