뉴비에욤

Webhacking.kr 46번 본문

Webhacking.kr

Webhacking.kr 46번

초보에욤 2015. 8. 16. 21:48

 

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