3학년/인터넷 보안(웹 해킹)

웹 보안_Chapter04 - SQL인젝션 공격

김야키 2018. 10. 3. 21:33

Chapter04 - SQL인젝션 공격


1.     SQL인젝션

l  웹 애플리케이션과 데이터베이스 간의 취약점을 이용해서 SQL문을 변조할 수 있는 것

 

2.     SQL인젝션 공격의 원리

l  웹 애플리케이션과 데이터베이스가 연동되는 부분에 공격자가 임의의 SQL명령어를 삽입하여 공격

l  사용자가 임의로 조작할 수 있는 로그인, 검색 부분, 자료실 등과 같은 부분을 해커 또한 임의로 조작할 수 있는 부분인 것을 알고 있어야 함 -> 실제로 데이터베이스와 연동이 되는 부분

l  SQL Injection 공격: 파라미터를 이용한 쿼리의 재구성 공격

               i.         쿼리를 입력하는 과정에서 일반적인 값 외에 악의적인 의도를 갖는 구문을 함께 삽입하여 공격자가 원하는 SQL쿼리문을 실행하는 대표적인 기법

 

3.     SQL Injection의 공격 종류

l  인증우회: AB(Auth Bypass)

l  데이터노출: DD(Data Diclosure)

l  원격명령 실행: RCE(Remote Command Excute)

 

4.     인증 우회(Auth Bypass)

l  로그인 인증 쿼리문이 무조건 TRUE의 결과값이 나오게 하여 인증을 무력화 시키는 기법

l  무조건 인증이 되도록 만들어서 로그인 과정을 우회하는 기법

l  공격 패턴 - 아래의 조건을 사용하면 TRUE값으로 변경할 수 있다고 한다.

               i.         ‘ or 1=1--

              ii.         ‘ or 1=1#

             iii.         ‘ or ‘dog’=’dog’--

             iv.         ‘ or ‘ar’=’a’+’b’--

              v.         ‘ or 2>1--


5.     데이터 노출(Data Disclosure)

l  실제로 중요한 데이터를 탈취하기 위한 기법

l  Error based, Union based, Blind based, Time based등이 있음

l  해커가 시스템 에러를 악의적으로 사용하게 되면, 해당 에러를 이용해서 정보를 탈취할 수 있음

               i.         데이터베이스의 에러를 웹 사이트 상에서 확인할 수 있음

l  Database의 에러 정보를 확인할 수 있는지, 없는지에 따라 공격방식 결정