티스토리 뷰

hacking/webhacking.kr

<webhacking.kr> - 11번

khe0616 2018. 2. 13. 00:36

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함