본문 바로가기
Hacking/bWAPP

Injection

by 알거음슴 2021. 6. 2.

SQL-Injection


Injection

인젝션 취약점(Injection-Vulnerability)SQL, OS, LDAP 등에 해당되며, 신뢰할 수 없는 데이터를 명령어나 질의 문의 일부분으로써 보내질 때 발생, 공격자의 데이터는 개발자의 의도하지않은 명령을 실행하거나 적절한 권한 없이 데이터에 접근하도록 Interpreter를 속이는 행위.

 

SQL (Structured Query Language) : Database 접근 할 수 있는 DB언어 

Oracle, MySql, MsSql 등 다양한 DB 들이 존재한다.

 

SQL Injection 

악의적인 사용자가 보안상 취약점을 이용하여 임의의 SQL 구문을 삽입, 실행되게 하여 Database의 동작을 고안된대로 작동되지않고 비 정상적으로 동작하도록 조작하는 공격방식, 간단한 공격방식의 비해 큰 피해를 도출할 수 있다.

 

SQL-Injection의 종류

1) Error based SQL Injection

GET,POST 요청필드,HTTP Header, Cookie 등의 데이터에 싱글쿼터(‘) 또는 세미콜론(;) 삽입 으로 SQL 관련 Error 유발, Database 정보를 예상해볼 수 있다.

2) Union based SQL Injection

 Union2개 이상의 query를 요청하여 결과를 얻은 SQL 연산자이며 공격자는 이를 악용하여 본래의 요청에 추가 query를 삽입 정보를 얻어내는 방식. Union query2개의 테이블이 동일한 필드갯수 및 데이터타입을 가져야하기에 Dictionary Attackdmf 통해 해당정보를 얻는 과정을 거치게된다.

3) Blind based SQL Injection

 Error가 발생되지않는 Site에서는 위 기법들을 사용할 수 없다, 이에 공격을 통해 정상적인 query여부를 가지고 취약점여부를 판단하는 기법.

4) Stored Procedure based SQL Injection

저장 프로시저(Stored Procedure)는 운영상의 편의를 위해 만들어둔 SQL 집합형태, 명령어 실행이 가능한 MSSQL xp_cmdshell 을 악용하여 운영체제 명령어를 삽입하는 기법.

5) Time based SQL Injection

Query결과를 특정 시간만큼 지연시키는 것을 이용하는 기법, Blind 기법과 마찬가지로 Error가 발생되지 않는 조건에서 활용할 수 있다.

 

[참고] CRLF Injection & Command Injection

CRLF Injection : CRLF(%0d%0a) Pattern 삽입을 통한 악의적인 공격

Command Injection : Query 등에 OS-cmd삽입하여 commed실행 및 시스템 권한 획득 공격

'Hacking > bWAPP' 카테고리의 다른 글

SQL-Injection AJAX, Login, Blog   (0) 2021.06.14
SQL Injection - Login Form  (0) 2021.06.14
SQL Injection - GET Select / POST Select  (1) 2021.06.07
HTML Injection - Reflected(POST)  (0) 2021.06.03
HTML Injection - Reflected(GET)  (0) 2021.06.03