본문 바로가기

IT/웹 해킹(Web Hacking)

webhacking.kr [문제 11번]








웹해킹 11번 문제를 풀어보겠다.




해당 문제의 배점은 300point이다.






해당 문제를 클릭하면


다음과 같은 정보가 주어진다.




해당 힌트를 분석해보자.



$pat="/[1-3][a-f]{5}_.*CLIENT_IP.*\tp\ta\ts\ts/";


if(preg_match($pat,$_GET[va])) { echo("Password is ????");}



간단하게 해석해보면


$pat란 변수에 정규표현식을 담고


GET방식으로 전해진 val이라는 변수에


해당 정규표현식에 맞는 문자열이 전해지면, Password를 출력하는 것으로 확인된다.




정규표현식을 하나하나 살펴보자.








1. [1-3]




[1-3] : 1~3사이의 문자 중 하나를 찾음 


예시) 1, 2, 3



2. [a-f]{5}





[a-f]{5} : a~f사이의 문자 중 하나를 찾아 5번 반복한다.


예시) abcde, ababa. aaaaa



3. _



_ : 해당 문자 '_' 를 덧붙힌다.


예시) _



4. .*ClLIENT_IP





.*CLIENT_IP : 클라이언트의 접속아이피가 0번이상 반복(존재)하는 지 확인한다.


예시) 38.152.92.138



5. .*\tp\ta\ts\ts





.*\tp\ta\ts\ts : \t는 (Tab)을 의미하므로 해당 문자열은 (Tab)p(Tab)a(Tab)s(Tab)s의 형태의 정규식 표현이 존재하는 지 확인한다.





해당 정규식표현으로 이루어진 문자열은 다음과 같이 해석할 수 있으며,


정규식 표현의 추가적인 정보를 알고 싶을 수 있기에,


관련 링크를 남기겠다.



정규표현식 추가 설명 : http://www.nextree.co.kr/p4327/




결론적으로 


"/[1-3][a-f]{5}_.*CLIENT_IP.*\tp\ta\ts\ts/"


해당 정규표현식으로 표현된 문자열을 조합하면


"2abcde_접속자의IP%09p%09a%09s%09s"


다음과 같은 형태로 표현된다




이때 %09는 tab문자를 url방식으로 인코딩한 것이다.




이제 문제를 풀어보자.





GET방식으로 해당 문자열을 전달한 후 url을 이동해보자.











정규표현식을 해석할 수 있다면 어렵지 않게 풀 수 있는 문제였다.











'IT > 웹 해킹(Web Hacking)' 카테고리의 다른 글

webhacking.kr [문제 13번]  (1) 2018.03.08
webhacking.kr [문제 12번]  (0) 2018.03.07
webhacking.kr [문제 10번]  (0) 2018.03.06
webhacking.kr [문제 9번]  (0) 2018.03.04
webhacking.kr [문제 8번]  (0) 2018.02.27