Webhacking.kr - Prob 49 - 300 - SQL Injection


문제의 첫 화면이다.

46번과 같은 화면을 볼 수 있지만 필터링 되는 부분에서 차이가 있다.





바로 소스보기 화면으로 들어가면 다음과 같이 index.phps라는 힌트가 적혀있다.



하지만 소스보기를 통해 들어가면 다음과 같이 복잡한 소스로 적혀있다.

이것을 html 페이지를 하나 만들어서 변환 시켜 보았다.



위와 같이 필터링하는 문자들을 확인할 수 있으며 q[0]에 admin을 넣게 되면 문제를 풀 수 있다.




우선 1을 입력해보았다.

zzibong이라는 id가 출력되며 level 2는 admin이 아닐까하는 추측을 할 수 있다.


이번 문제는 or, and, limit 등 지금까지 하던 문자열들을 모두 필터링 하고 있는 것을 볼 수 있다.

게다가 ()와 , 등 모두 필터링 되기 때문에 concat이나 char를 사용할 수 없다.

하지만 잘 보면 이 문제에서는 계속 필터링 되던 0x가 빠진 것을 볼 수 있는데 헥스값을 이용할 수 있다는 의미가 된다.

admin은 헥스값으로 넣어주기로 하고 or는 같은 의미를 가지는 || 연산자를 사용하면 된다.


이를 기반으로 쿼리문을 작성해보면 다음과 같다.

"select id from members where lv=2||id=0x61646d696e"







저작자 표시 비영리 변경 금지
신고

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

Webhacking.kr prob 49 - 300  (0) 2014.01.24

+ Recent posts

티스토리 툴바