보안 공부하는 꼬깔이

Webhacking.kr 11번 문제 풀이

 

 

 

 

11번 문제에 접속하게 되면 위와같은 화면이 보일것이다.

 

이번문제는 index.phps 힌트 페이지는 존재하지 않고 위의 내용을 보고 문제를 공략하면 되는 모양이다.

 

$pat="/[1-3][a-f]{5}_.*문제에 접속한 PC IP*\tp\ta\ts\ts/";

 

해당 코드를 보면 $pat 변수에 정규식 표현을 저장한다.

 

Tip.정규식 표현(Regular Expressin)?

- 정규식 표현은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다. 주로 프로그래밍 언어나 Text Editor 등에서 문자열의 검색과 치환을 위한 용도로 쓰이고 있다. 

#정규식 표현의 사용법을 알고 싶다면 해당 블로그를 참조하자 <http://www.nextree.co.kr/p4327/

 

if(preg_match($pat,$_GET[val])) { echo("Password is ????"); }

 

그리고 위 코드를 확인하면 preg_match 함수를 사용하여 Get 방식으로 입력받은 val 변수에 저장된 내용을 $pat에 저장된 정규식 표현과 매칭시켜 만약에 $_GET[val] 에 저장된 값이 $pat 변수에 저장된 정규식표현에 매칭이 된다면 password를 출력시켜준다. 

 

이제 $pat 변수에 저장된 정규식 표현을 해석해보자.

 

 

[1-3]  해당 부분은 위의 내용에 따라 1~3 사이의 문자중 하나를 찾는 정규식표현

 

 

 

[a-f]{5}_  해당 부분은 위의 내용에 따라 a~f중의 문자를 5번 반복하는 문자를 찾는 정규식 표현 그리고 마지막에 "_" 를 붙힘 

 

 

 

.*문제 접속 IP 해당 부분은 위의 내용에 따라 문제 접속 IP 가 0번이상 반복(존재한다면) 하는 문자를 찾는 정규식 표현 

 

 

 

 

.*\tp\ta\ts\ts 해당 부분은 위의 내용에 따라 \t 는 tab을 의미함 그러므로 (tap)p(tap)a(tap)s(tap)s 를 찾는 정식표현. 하지만 문제에서 우리는 GET 방식으로 val 변수에 값을 전달하므로 tab을 url encoding 하여 전달해야한다, tab을 urlencode 하게 되면 %09 라는 값이 나온다 최종적으로 %09p%09a%09s%09s 이렇게 전달해야 한다.

 

결과적으로  $pat 변수에 저장된 정규식 표현과 매칭이 되는 문자는 1abcde_문제접속IP%09p%09a%09s%09s  이렇게 된다.

 

 

 

전달!

 

 

 

300 Point 획득 :D

'Web Hacking > Web Hacking.kr' 카테고리의 다른 글

Webhacking.kr 14번 문제 풀이  (0) 2017.07.06
Webhacking.kr 12번 문제 풀이  (0) 2017.07.06
Webhacking.kr 10번 문제 풀이  (0) 2017.07.06
webhacking.kr 6번 문제 풀이  (0) 2017.06.29
webhacking.kr 5번 문제 풀이  (0) 2017.06.29