webhacing.kr 49번 문제는 다음과 같다.
46번 문제와 비슷한 문제인 것 같다.
우선 페이지 소스를 보자.
index.phps 가 주어져있다. 들어가 보자.
우선 코드를 분석해보자.
GET 방식으로 lv 를 전달받으며, lv에 값이 있을 때 union, from 등을 필터링하며 해당 문자열이 존재하면 아무것도 안하고 종료한다.
46번 문제와 비슷한 맹락인 것 같다.
일단 쿼리문을 다음과 같이 만들면 될 것 같다.
select id from members where lv=x or id='admin'
여기서 x는 1을 제외한 임의의 숫자다. 그 이유는 1은 zzibong을 가리키기 때문이다.
그런데 공백과 or은 필터링되기 때문에 사용할 수 없다.
or을 ||로 변경하고 공백은 없이 입력해보자.
즉, 쿼리문은 다음과 같다.
select id from members where lv=3||id='admin'
처음 화면이 나타난다.
" ' "를 없애는 기능이 켜져 있는 것 같다.
char() 함수를 이용하려고 하니까 "("와 ")"는 필터링되어 있다.
0x가 필터링되지 않았기 때문에
0x를 이용해 쿼리문을 다음과 같이 만든다.
select id form members where lv=3||id=0x61646d696e
그러면 문제가 풀린다.
이번 문제 역시 입력창에 입력하면 안되고 URL에 직접 입력해야 한다.
'Wargame > webhacking' 카테고리의 다른 글
[webhacking.kr] 54번 문제 (0) | 2017.06.18 |
---|---|
[webhacking.kr] 53번 문제 (0) | 2017.06.18 |
[webhacking.kr] 46번 문제 (0) | 2017.06.18 |
[webhacking.kr] 39번 문제 (0) | 2017.06.18 |
[webhacking.kr] 38번 문제 (0) | 2017.06.18 |