메인화면은 위와 같습니다.

소스보기를 통해 소스코드를 분석해보겠습니다.

$pat="/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/";

if(preg_match($pat,$_GET['val'])){

solve(11);

}

첫줄부터 하나씩 분석해보면

[1-3] = 1부터 3까지의 임의의 숫자 1개

[a-f]{5}_ = 'a' 부터 'f'까지의 문자중 임의의 문자 1개를 5번 반복 후 '_'문자 표시

. = 임의의 문자 1개

* = 임의의 여러 문자

$_SERVER[REMOTE_ADDR] = 클라이언트 IP추출

\t = tab 표시

위 분석을 토대로 정규식을 만들어보면 아래와 같이 만들 수 있습니다.

"1aaaaa_k[공인IP]k%09p%09a%09s%09s"

URL에 tab을 표시할 방법이 없어서 '\t'를 %09로 URL인코딩하여 표현하였습니다.

preg_match(a, b)는 b에서 a패턴에 매치되는지 검사하는 함수입니다.

위에서 만든 정규식에 매치되는 문자열을 URL에 입력하면 아래와 같이 해결할 수 있습니다.

 

챌린지 11 클리어!

'WAR GAME > Webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Level13 (old)  (318) 2020.04.27
[webhacking.kr] Level12 (old)  (365) 2020.04.27
[webhacking.kr] Level10 (old)  (587) 2020.04.27
[webhacking.kr] Level9 (old)  (752) 2020.04.27
[webhacking.kr] Level8 (old)  (0) 2020.04.27

+ Recent posts