Wargame/webhacking2017. 6. 18. 21:14

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
Posted by Imp3rio