'expr' BETWEEN 'a' and 'b'
문장은 a <= expr <= b 인 경우 참이 된다.
a와 b를 같은 값을 주게 되면 expr의 값과 같은 경우 참인 경우가 되게 된다.
'=' 또는 '>' 등의 비교연산문이 필터링 된 경우 이를 통해 블라인드 인젝션을 시도할 수 있게 된다.
사용 예)
select * from user where id='admin' and (substr(pw,1,1) BETWEEN 'a' and 'a')
admin 패스워드의 첫 번째 문자가 a이면 문장이 참이 된다.
select * from user where id='admin' and (substr(pw,1,1) BETWEEN 'a' and 'a') and !sleep(1)
타임베이스에서는 위 문장과 같이 사용할 수도 있다.
연산의 최적화에 의해서 조건문이 참인 경우 sleep()함수가 동작하게 된다.
이를 통해 참 거짓을 판단할 수 있다.
'web' 카테고리의 다른 글
[SQL injection] 지수 연산을 이용한 error based (0) | 2015.04.01 |
---|---|
[SQL Injection] SQL Injection이란? (0) | 2015.03.02 |
webhacking.kr을 통해 배우는 웹 해킹 기초 (0) | 2015.03.02 |
Owasp Top 10 2013 (0) | 2015.01.21 |
인코딩과 인코딩 방식 (0) | 2014.07.07 |