SQL 질의 결과가 노출되지 않는 곳에서 사용하는 공격 기법
공격 순서 및 예시
(1) 파라미터가 전송되는 페이지 에서 참 / 거짓을 구분할 수 있는 페이지를 확인한다.
(2) 참/거짓 값으로 인증시도 ( 인젝션 가능 여부 )
ex ) a' and '1' ='1 , a' and '1' ='2
(3) substring(자를 문자열, 자를 문자의 시작점, 자를 문자의 개수) 을 이용하여 디비이름 / 테이블 / 컬럼확인
ex) a' and substring(select database(),1,1))
(4) ascii 코드로 비교하여 문자 확인
ex) ascii(substring(select database(),1,1))) > 70
위의 3, 4번을 통해 첫번째 두번째 세번째 ... 반복하여 원하는 데이터 값을 얻는다.
장점 및 단점
질의 결과가 노출되지 않아도 사용이 가능 하기 때문에 SQL 가장 공격 가능성이나 활용도가 높다. 그러나 참/거짓으로 데이터를 얻기 때문에 반복적인 질의문을 사용해야 한다.
따라서 현실적으로 하나씩 대입해 원하는 값을 도출한다는 것은 너무 많은 시간과 비용이 소모되기 때문에 for문 이나 반복분을 통해 반복적으로 대신 처리해 줄 코드를 사용해서 활용해야하는 기법으로 보인다.
'정보보안 > SQL Injection' 카테고리의 다른 글
로그인 식별/인증 동시 sql문 개행방식 (0) | 2021.11.03 |
---|---|
SQL Injection 식별/인증 Hash처리(인증 우회) (0) | 2021.11.01 |
SQL Injection ( 인증 우회 ) 식별/인증 분리방식 (0) | 2021.10.31 |
SQL Injection ( 인증 우회 ) 식별/인증 동시방식 (0) | 2021.10.30 |