본문 바로가기

WEB 정리

SQL Injection 정리(DBMS, SQL, SQL Injection)

DBMS

그림1. DBMS 종류(Dream Hack)

데이터베이스를 관리하기 위한 시스템
데이터베이스에 새로운 정보 기록 및  기록된 내용을 수정, 삭제하는 역할
DBMS는 다수의 사람이 동시에 데이터 베이스에 접속 가능.
관계형 테이블 형식으로 데이터를 저장함.
비관계형테이블 형식이 아닌 키 값 형태로 값을 저장함.

 

SQL

그림2. SQL 언어(Dream Hack)

SQL은 구조화된 형태를 가지는 언어로 웹 어플리케이션이 DBMS와 상호작용할 때 사용
 SQL은 사용 목적과 행위에 따라 다양한 구조가 존재하며 대표적으로 아래와 같이 구분

 

SQL Injection

웹 사이트의 보안 상 허점을 이용해 특정 SQL 쿼리 문을 전송해 데이터베이스의 중요한 정보를 가져오는 해킹 기법

• DBMS에서 사용하는 SQL을 삽입하는 공격

DB와 연동된 웹에서 입력된 데이터에 대한 유효성 검증, 즉 입력한 데이터를 제대로 필터링하지 못하는 경우에 발생함.

그림3. SQL Injection(Dream Hack)

 

DBMS Fingerprinting

• 모의 해킹은 Penetration Testing Execution Standard (PTES)에 의하면 총 일곱 가지 단계로 구성됨.

• 처음 과정을 살펴보면, 먼저 공격 대상을 지정하고 대상의 정보를 수집합니다. 대상의 정보를 수집하는 과정을 핑거프린    팅이라고 함.

 SQL Injection 취약점이 발생할 때 DBMS 정보를 수집하는 방법.

 

SQL Injection - 종류

1. Error based SQL Injection

 Error based SQL Injection은 임의로 에러를 발생시켜 데이터베이스 및 운영 체제의 정보를 획득하는 공격 기법.
 에러 메시지와 같이 쿼리 실행 결과를 직접 노출하지는 않지만 그러나 중요한 정보를 노출하는 방법들이 존재함.

2. Blind SQL Injection

원하는 데이터를 가져올 쿼리를 삽입하는 기술.
웹에서 SQL 삽입에 취약하나 데이터베이스 메시지가 공격자에게 보이지 않을 때 사용함.
쿼리가 참 or 거짓 일때의 서버의 반응으로 데이터를 얻어냄.
 

3. Blind SQL Injection -  Timebased

• 쿼리와 관련된 어떠한 결과도 출력하지 않는 경우나 해당 결과만으로 참과 거짓을 판별하기 힘든 경우 시간지연 쿼리를 넣어 응답의 유무나 시간의 차이로 참과 거짓 여부를 확인 가능함.

그림4. 시간지연함수 예시(Dream Hack)

 sleep 함수: 시간 지연을 발생시키는 함수

• MID : 문자에 지정한 시작 위치를 기준으로 일정 갯수를 가져오는 함수.

 

SQL Injection WAF

Web Application Firewall (WAF)는 웹 애플리케이션에 특화된 방화벽.

 WAF는 규칙 기반 및 행동 기반의 보안 정책을 사용하여 웹 애플리케이션을 보호

HTTP 및 HTTPS 트래픽을 분석하여 악성 코드나 보안 취약점을 탐지하고 차단

 

'WEB 정리' 카테고리의 다른 글

OWASP ZAP & Web Crawring(Web Scrapping)  (0) 2023.05.25
버프 스위트(Burp Suite) 사용 및 조작 (Proxy & Intruder)  (0) 2023.05.25
XSS 실습  (0) 2023.05.24
File download & upload vunerablity 정리  (0) 2023.05.24
XSS & CSRF 정리  (0) 2023.05.24