본문 바로가기

웹 해킹 (Web)/webhacking.kr

[webhacking.kr] 웹해킹.kr old-11번 (300)

728x90
반응형

이번에는 webhacking.kr의 old-11번 문제입니다. 소스 코드를 이용하는 문제고 300점이 배점되어 있습니다.

 

처음 들어가면 Wrong이라는 문자열이 보입니다. 소스 코드를 보겠습니다.

 

php 문을 보면 pat이라는 변수에 어떤 정규표현식을 대입해줍니다.

 

그리고 if 조건문으로 pat 변수와 GET으로 전달되는 val 값이 일치하면 문제가 해결됩니다.

 

그럼 pat 변수를 구해보겠습니다.

 

[1-3] 은 1부터 3까지의 문자 중 어떤 한 문자를 의미합니다.
[a-f] 는 a부터 f까지의 문자 중 어떤 한 문자를 의미합니다. 
{5}는 앞에 오는 [a-f]중 어떤 한 문자를 5번 반복하라는 의미입니다.
_는 그냥 '_' 문자입니다.
.* ~ .*는 .* 뒤에 0개 이상의 문자열을 .*이 나올 때 까지 반복하라는 의미입니다.
\t는 탭을 의미합니다. 즉 (탭)p(탭)a(탭)s(탭)s를 의미합니다.

 

위 문제는 GET 방식으로 val 변수를 전달하므로 (탭)을 URL 인코딩을 해주어야 합니다. (URL이 전달되는 과정에서 자동으로 디코딩 되므로)

 

(탭)을 URL 인코딩하면 %09가 나옵니다.

 

 

위의 정규 표현식을 바꾸어보면 1aaaaa_127.0.0.1%09p%09a%09s%09s입니다.(127.0.0.1에 본인 ip주소)

 

이 정규표현식을 URL을 통해서 GET 방식으로 val에 집어넣어 보겠습니다.

 

문제가 해결되었습니다.

728x90
반응형