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
Union은 2개 이상의 query를 요청하여 결과를 얻은 SQL 연산자이며 공격자는 이를 악용하여 본래의 요청에 추가 query를 삽입 정보를 얻어내는 방식. 단 Union query는 2개의 테이블이 동일한 필드갯수 및 데이터타입을 가져야하기에 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 |