level11[old]

2022. 4. 15. 00:12Site/Webhacking.kr

level11에 들어가니 Wrong이라는 문구가 보임

일단 뭔지 모르겠으니 view-source를 눌러 소스코드를 봄

 

 

 

소스코드를 보니 변수 pat에 regular expression을 넣어준것을 확인하고 regular expression이 담긴 pat과 get방식으로 입력받은 val값을 preg_match함수로 비교해서 일치하면 클리어되는 것 같음.

 

해당 regular expression을 살펴보면

/ -> regular expression의 시작과 끝을 표현함

[] -> 문자를 문자집합으로 그룹화 시키고 해당 그룹화된 문자중 하나를 찾음[여기서는 1-3중 하나를 찾음]

ex) [bcd] "bart", "cart"... 이 해당됨

{} -> 발생횟수를 의미함. 여기서는 {5}라고 되어있는데 [a-z]중 해당되는 문자열을 5번 반복하라는 의미임.

       그리고 마지막 부분에 _를 붙여줌.

cf) {}는 {min, max}형태로 되어있음

만약 {2,} 로 min만 값이 있다면 최소 2개이상을 의미함

{,6}처럼 max값만 있다면 최대 6개를 의미함

{3}은 정확히 3번을 의미함.

. -> 와일드카드로 .a라면 앞에는 어느것이든 올수있고 끝에만 a이면됨.

* -> *뒤에 0회이상발생을 의미함. 즉 여기서는 자신의 공인ip가 0번이상 발생하면됨.

\t -> tab문자를 찾음.

 

이제 위의 regular expression을 조건에 맞게 넣어주어야 됩니다.

-> 1aaaaar_.공인ip주소%09p%09a%09s%09s

tab을 %09로 한 이유는 get방식으로 변수 val에 값을 넣어 전달해야 되기때문에 tab을 url인코딩한 값 %09로 치환해서 넣어주어야 됩니다.

 

위처럼 넣어주니 클리어 되었습니다.

'Site > Webhacking.kr' 카테고리의 다른 글

level3[old]  (0) 2022.04.15
level19[old]  (0) 2022.04.13
level31[old]  (0) 2022.04.12
level61[old]  (0) 2022.04.12
level58[old]  (0) 2022.04.10