SQL injection

정승렬·2023년 7월 31일
0

기술면접

목록 보기
33/38

SQL Injection 이란

악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위


  • 논리적 에러를 이용한 SQL Injection
  • Union 명령어를 이용한 SQL Injection
  • Boolean based SQL
  • Time based SQL
  • 저장된 프로시저 에서의 SQL Injection
  • 다량의 SQL Injection 공격

Error based SQL Injection

논리적 에러를 이용한 SQL Injection
논리적 에러를 이용한 SQL Injection은 가장 많이 쓰이고, 대중적인 공격 기법

Union based SQL Injection

Union 명령어를 이용한 SQL Injection
정상적인 쿼리문에 Union 키워드를 사용하여 인젝션에 성공하면, 원하는 쿼리문을 실행할 수 있게 됨
Union Injection을 성공하기 위해서 필요한 두 가지의 조건
Union 하는 두 테이블의 컬럼 수가 같아야 하고, 데이터 형이 같아야 합니다.

Blind SQL Injection

Boolean based SQL
Blind SQL Injection은 데이터베이스로부터 특정한 값이나 데이터를 전달받지 않고, 단순히 참과 거짓의 정보만 알 수 있을 때 사용

Blind SQL Injection

Time based SQL
Time Based SQL Injection 도 마찬가지로 서버로부터 특정한 응답 대신에 참 혹은 거짓의 응답을 통해서 데이터베이스의 정보를 유추하는 기법

Stored Procedure SQL Injection

저장된 프로시저 에서의 SQL Injection
저장 프로시저(Stored Procedure) 은 일련의 쿼리들을 모아 하나의 함수처럼 사용하기 위한 것
단, 공격자가 시스템 권한을 획득 해야 하므로 공격난이도가 높으나 공격에 성공한다면, 서버에 직접적인 피해를 입힐 수 있는 공격

Mass SQL Injection

다량의 SQL Injection 공격
2008년에 처음 발견된 공격기법으로 기존 SQL Injection 과 달리 한번의 공격으로 다량의 데이터베이스가 조작되어 큰 피해를 입히는 것을 의미

0개의 댓글