Study/Hacking
[webhacking.kr] old-11
dys4nt
2023. 6. 14. 15:22
문제 소스를 보면
<?php
$pat="/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/";
if(preg_match($pat,$_GET['val'])){
solve(11);
}
else echo("<h2>Wrong</h2>");
echo("<br><br>");
?>
$pat="/[1-3][a-f]_.*$SERVER[REMOTE_ADDR].*\tp\ta\ts\ts" 의 정규표현식 형태이다. 이게 ?val= 값과 일치하면 풀린다.
정규식을 잘 알고 있는 사람이라면 금방 풀 수 있다.
[1-3]은 [1-3]범위에 있는 문자 하나를 지칭한다. 1
[a-f]{5}는 [a-f]범위에 있는 문자 5개를 지칭한다. aaaaa
_는 _
.*는 .(아무 문자나 가능) *(0개 이상의 개수) 이므로 아무 문자도 입력하지 않아도 된다.
$_SERVER[REMOTE_ADDR]는 내 ip주소
\tp\ta\ts\ts는 탭을 인코딩해서 %09p%09a%09s%09s 형태로 입력하면 된다.
?val=1aaaaa_182.224.141.25%09p%09a%09s%09s를 입력하면 문제가 풀린다.