티스토리 뷰
11번 문제의 초기화면
코드는 별거 없고 초기화면에 써있는 php코드가 힌트이다.
preg_match("정규식","검사할 문자")는 "검사할 문자"에 대한 "정규식"패턴의 존재여부를 검사하는 함수로 존재하면 true(1), 존재하지 않으면 false(0)을 리턴한다.
이 함수는 이메일, 전화번호 등을 올바른 형태로 입력받기위해 많이 사용된다.
$pat="/[1-3][a-f]{5}_.*내IP.*\tp\ta\ts\ts/";
if(preg_match($pat,$_GET[val])) { echo("Password is ????"); }
즉, 이 문제는 정규식 $pat의 패턴을 갖는 문자열을 val이라는 변수(GET방식)으로 전달하면 풀리는 문제이다.
정규식은 /으로 감싸주므로 슬래쉬는 입력하지 않아도된다.
이 정규식을 분석해보면
[1-3] : 1~3중에서 한번
[a-f]{5} : a~f중에서 다섯번
_ : 그냥 _
.* : 임의의 문자 0번이상
내IP : 숫자 부분은 그대로 쓰면 되고, "." 부분은 각각 임의의 문자 한번
.* : 임의의 문자 0번이상
\tp\ta\ts\ts : "\t"는 tab(%09), p,a,s,s는 그대로 적으면됨
따라서 url 맨뒤에 ?val=2aaaaa_123a45a67a123%09p%09a%09s%09s 을 추가해서 입력해주면 (내 ip를 123.45.67.123으로 가정하였다.)
클리어
'hacking > webhacking.kr' 카테고리의 다른 글
<webhacking.kr> - 58번 (0) | 2018.02.14 |
---|---|
<webhacking.kr> - 32번 (0) | 2018.02.13 |
<webhacking.kr> - 43번 (0) | 2018.02.12 |
<webhacking.kr> - 36번 (0) | 2018.02.12 |
<webhacking.kr> - 23번 (0) | 2018.02.12 |