본문으로 바로가기

SQL Injection의 종류와 의미

category K-Shield Jr./모의해킹 2018. 11. 7. 14:59

SQL Injection


앞으로 실습할 SQL Injection 에 대해 간략하게 정리하고자 한다.


1. SQL(Structured Query Languate) : DDLDML을 포함한 관계형 데이터베이스에서 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어


2. Sql Injection : 사용자의 입력 값으로 웹 사이트의 SQL 쿼리가 완ㄴ성되는 약점을 이용하며, 입력 값을 변조하여 비정상적인 SQL 쿼리를 조합하거나 실행하는 공격


3. Injection 유형 : SQL Injection, LDAP Injection, No SQL 쿼리 등이 있으며, SQL Injection이 대표적인 유형. SQL InjectionUnion Injection, Blind Injection, Error based Injection 등으로 세분화됨

   1) Union Injection : 2개 이상의 쿼리를 요청하여 결과를 얻는 Union이라는 SQL 연산자를 이용한 SQL 공격

      · Union 연산자 이용 시 둘 이상의 Select 문 결과를 단일 결과 집합으로 결합할 수 있음

      · 단, Union 연산자 사용시 결합된 결과 집합은 컬럼 개수가 같고, 컬럼 값이 호환되는 데이터 형식을 가져야 함

   2) Blind Injection : DB에러페이지 등이 노출되지 않아서 SQL Injection 취약점 존재를 판단하기 어려울 경우 사용되는 기법

      · 참인 쿼리에 대한 페이지 반응과 거짓인 쿼리의 페이지의 반응에 차이점이 존재할 경우 Blind Injection이 있다고 판단

   3) Error based Injection : 의도적으로 에러를 발생시키고 이로 인해 나타나는 에러 메시지로부터 DB 정보를 얻어내는 기법