뉴비에욤
Webhacking.kr 46번 본문
GET 메소드로 전송되는 lv 파마리터 값에서 공백,'/', '*', '%' 문자가 들어오면 삭제해 버린다.
그리고 "union, select, from, challenge, 0x, limit, cash" 문자열이 들어오면 아예 오류가 발생된다.
그리고 $q 변수에 lv 파라미터 값과 함께 실행되는 쿼리의 값이 저장되는데, 쿼리 결과 내 id 값이
"admin" 일 때만 문제가 클리어 된다.
공백 우회는 %0a를 사용하면 된다.
위에서 보이는 0b0110000101100100011011010110100101101110 정수값은 "admin" 문자열을 2진수로 나타나낸 것이다. (이상하게 admin 을 입력하면 클리어가 안됨, 필터링 하는듯)
위 쿼리에서는 lv 값이 1로 세팅되어 "zzibong" id 값이 리턴된다. 따라서 뒤에서 "admin" 값이
리턴되어도 클리어 되지 않는다.
lv 값을 -1로 주면, 아무런 결과가 나타나지 않지만 OR 연산자로 뒤 "admin" 부분과 묶여 있기
때문에 "admin" id 값이 리턴되어 문제가 풀린다.
이진법 말고도 char 함수를 통해 "admin"을 의미하게 만들 수도 있다.
'Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 48번 (0) | 2015.08.16 |
---|---|
Webhacking.kr 47번 (0) | 2015.08.16 |
Webhacking.kr 45번 (0) | 2015.08.16 |
Webhacking.kr 44번 (0) | 2015.08.16 |
Webhacking.kr 43번 (0) | 2015.08.16 |
Comments