프로젝트/Webhacking.kr

[Webhacking.kr] Challenge(old) 11번 문제

Uggjjini 2021. 7. 6. 13:19

문제페이지는 해당 페이지와 같다.

 

 

해당 페이지에는 Wrong 이라는 문자와 view-source 링크가 존재한다.

 

view-source 링크를 통해 해당 페이지의 소스코드를 확인한다.

 

 

 

해당 코드에서 php 부분을 중심으로 해석한다.

 

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

 

$pat 변수에 정규표현식을 저장한다.

 

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

 

[1-3] 1부터 3까지의 숫자 중 하나가 들어가야 함
[a-f]{5} a, b, c, d, e 중 아무 문자를 5번 반복
_ 기호 _ 
. \n(공백문자)를 제외한 문자
* 앞의 정규식이 0번이상 반복되어야 함
$_SERVER[REMOTE_ADDR] 웹서버에 접속한 사용자 ip 정보 
\tp\ta\ts\ts/ \t : 탭 문자 => p   a   s   s

 

 

if(preg_match($pat,$_GET['val'])){
    solve(11);
  }

 

preg_match(정규표현식, 검색대상) 함수를 통하여 $pat 변수와 URL에서 Get 방식으로 받아오는 val 파라미터의 값이 같으면 해당 문제가 풀린다는 것을 알수 있다.

 

 

$pat 변수에 저장된 정규표현식을 참고하여 URL의 val 값을 임의로 정해준다.

 

val = 1abcde_(IP주소)%09p%09a%09s%09s%09

 

URL 에 넣을 파라미터 값이기 떄문에 \t 탭문자는 URL 인코딩을 한 값을 넣어주었다.

 

IP 주소는 내 아이피 주소를 찾을 수 있는 사이트에서 검색한 값을 넣어준다.

 

https://www.findip.kr/

 

아이피 확인 - my ip address

IP 주소를 확인하는 가장 쉽고 빠른 방법 이 사이트(findip.kr)에 접속하는 것이 IP주소를 확인하는 가장 쉽고 빠른 방법이다. 210.220.73.253 가 현재 접속한 기기의 공인 IP(Internet Protocol) 주소다 IP주소

www.findip.kr

 

 

 

URL 뒷부분에 임의로 설정한 val 파라미터 값을 넣어주고 이동한다.

 

 

문제가 풀리는 것을 확인할 수 있다.