본문 바로가기
정보보안/wargame

[webhacking.kr] challenge(old). old-11

by 민-Zero 2020. 4. 2.

11번 문제의 시작화면이다. 특별한 점은 없으므로 바로 페이지의 소스를 확인해보면

 

간단한 php 소스를 확인할 수 있다.

 

$pat="/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/";
  if(preg_match($pat,$_GET['val'])){
    solve(11);

}

pat 이라는 변수에 정규표현식이 문자열로 들어간다. pat에 들어가는 정규표현식은

[1-3] : 1~3중 하나의 숫자

[a-f]{5} : a~f중 5개의 알파벳

_ : '_' 문자

.* : 임의의 문자 0개 이상

$_SERVER[REMOTE_ADDR] : 접속자의 ip

\t : tap을 의미, 따라서 tapptapatapstaps가 된다. url에서 \t 는 %09를 의미한다.

조건문에서 해당 정규표현식과 val변수에 get방식으로 입력되는 값을  매칭하여 일치하면 해당 문제가 풀리게 된다.

따라서 해당 정규표현식에 매칭되는 임의의 문자를 하나 설정하여 get방식이므로 url에서 val변수에 입력하여 전달하면 된다.

 

임의로 다음과같이 입력해 전달했다 ?val=2fffff_[공인 아이피주소]%09p%09a%09s%09s

ipconfig를 통해 확인하는 ip는 사설주소이므로 구글에서 현재 접속중인 공인아피주소를 확인할 수 있는 사이트에서 확인하여 입력하면된다. 

url에 값을 입력한후 전송을하게 되면 해당 문제를 해결할 수 있다.

 

댓글