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번 문제를 클리어하면 된다.