문제페이지는 해당 페이지와 같다.
해당 페이지에는 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 주소는 내 아이피 주소를 찾을 수 있는 사이트에서 검색한 값을 넣어준다.
URL 뒷부분에 임의로 설정한 val 파라미터 값을 넣어주고 이동한다.
문제가 풀리는 것을 확인할 수 있다.
'프로젝트 > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Challenge(old) 17번 문제 (0) | 2021.07.06 |
---|---|
[Webhacking.kr] Challenge(old) 12번 문제 (0) | 2021.07.06 |
[Webhacking.kr] Challenge(old) 10번 문제 (0) | 2021.07.06 |
[Webhacking.kr] Challenge(old) 15번 문제 (0) | 2021.07.05 |
[Webhacking.kr] Challenge(old) 14번 문제 (0) | 2021.07.05 |