2016. 7. 30. 10:23 :: 문제풀이/WebHacking,kr

안녕하세요. 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 값만 변경해주면 됩니다.

 

 

다음 레벨로 넘어갑니다!

 

 

posted by Red_Message
2016. 7. 30. 09:07 :: 문제풀이/WebHacking,kr

안녕하세요. Message입니다.

Webhacking.kr 문제풀이를 시작합니다.

회원가입부터 문제라더군요 ㅎㅎ

 

------------------------------------------------------------------------------------------------------------------------------------------

1. 문제파악

------------------------------------------------------------------------------------------------------------------------------------------

아래의 URL로 접속합니다.

URL : http://webhacking.kr/

아래와 같은 창이 나타납니다. 로그인 버튼 외에는 어떤것도 존재하지 않습니다.

회원가입부터 문제의 시작이군요!

 

 

------------------------------------------------------------------------------------------------------------------------------------------

2. 문제풀이

------------------------------------------------------------------------------------------------------------------------------------------

로그인을 시도할 때 공백일 경우 리턴되는것 외에는 별다른 점을 찾지 못했습니다.

 

하지만 아랫부분으로 더 내려가면 아래와 같이 주석처리된 부분을 발견할 수 있습니다.

버튼인데, 누르게 되면 특정 URL로 가는것 같습니다.

해당 URL을 현재 주소와 합칩니다.

URL : http://webhacking.kr/join/includ2_join__frm__0001.php?mode=b4c23ed5d4dd8888c6f6b57158305276

 

저는 이미 회원가입을 했기 때문에 다시 해보면 경고창이 뜨네요.

 

아래와 같은 회원가입 페이지가 나타났습니다.

"decode me" 라고 적힌 부분이 있는데, 살펴보니 끝이 "==" 문자열로 끝나는걸로 보아선

base64로 디코딩 된것 같네요.

온라인으로 URL을 디코딩할 수 있는 사이트들이 있으니 찾아서 디코딩 해줍니다.

 

한번 디코딩을 해주니 또다른 디코딩 문자가 나옵니다.

디코딩이 완전 해제될때까지 3번 디코딩을 해주면, 본인 PC의 IP가 나옵니다.

모두 적어주소, 회원가입을 마칩니다.

 

회원가입이 끝났습니다. 본격적으로 홈페이지로 접속해봅니다.

 

아래와 같은 메인페이지에 접속합니다.

본격적인 문제풀이를 시작해볼까요?

posted by Red_Message