Web Hacking/Webhacking.kr

Webhacking.kr 49번

oiehso0 2018. 5. 4. 17:09


주소창에 lv=1 대신에 2-1을 대입해보고 injection이 일어나는지 확인해본다.  



역시나 index.phps가 주석에 쓰여져 있다. 소스코드를 확인해보면 아래와 같다.



eregi()함수를 이용해서 union, from, select, or, and, ( , ) ,limit   ,  ","  , / , by, desc, asc, cash, " " , %09 를 필터링 하는데 

46번 문제와 비슷하게 lv변수는 일부러 거짓이 되게 만들고 or 문을 이용할텐데


1.    공백과 TAB: %09가 모두 필터링 되어 있지만 %0a 줄바꿈을 이용해서 공백을 만들어주고 

2.    or 은 ||을 이용해서 필터링을 피해준다. 

3.    함수를 사용하기 위해서 ( ) 괄호가 필요한데 괄호 역시 필터링 되어있다. 그렇지만 0x 필터링은 안되어있기 때문에 id변수에 헥스값을 넣어주면 

문자열로 넘어간다. 


이런 방법으로 49번 문제를 클리어하면 된다.