-
[Webhacking.kr] 11번 풀이Wargame/webhacking.kr (old) 2019. 4. 16. 02:58
- preg_match("정규표현식", "검사할 문자열")
입력받은 문자열이 주어진 정규표현식과 검사하여 일치하면 True
문제를 보면 $pat에 지정된 정규표현식의 값과 val으로 보내준 문자열이 일치하면
password를 echo를 통해 알려준다.
따라서, $pat에 해당되는 문자열을 먼저 알아내야 한다.
우선, 정규 표현식에 대해 알아보자.
정규 표현식(Regular Expression) 이란?
특정 규칙을 가진 문자열의 집합을 표현하는 언어로 문자열의 검색과 치환을 위한 용도로 사용
[정규 표현식] : http://www.nextree.co.kr/p4327/
이제 $pat의 정규 표현식을 분석해보자,,!
$pat="/[1-3][a-f]{5}_.*내IP주소.*\tp\ta\ts\ts/"
// : 정규식에 필요한 경계
[1-3] : 1~3 사이의 글자
[a-f]{5} : a~f 사이의 글자를 5번 반복
_ : 그냥 문자
. : 임의의 한 문자
* : 0번 이상 반복
내IP주소 : 그냥 문자열
(임의로 123.123.123.12로 한다)\t : Tab
분석한 결과대로 $pat의 패턴과 일치하는 문자열은 "1aaaaa_123.123.123.12\tp\ta\ts\ts" 이다.
그러나, 여기서 중요한 점은 해당 문자열을 get 방식으로 val의 값으로 넘겨준다는 점이다...!!
get 방식으로 값을 전송해야하기 때문에 Tab은 %09로 변환하여 값을 입력해주어야 한다.
1aaaaa_123.123.123.12%09p%09a%09s%09s
'Wargame > webhacking.kr (old)' 카테고리의 다른 글
[Webhacking.kr] 13번 풀이 (0) 2019.04.16 [Webhacking.kr] 12번 풀이 (0) 2019.04.16 [Webhacking.kr] 10번 풀이 (0) 2019.03.03 [Webhacking.kr] 9번 풀이 (0) 2019.03.02 [Webhacking.kr] 8번 풀이 (0) 2019.03.02 댓글