https://choco4study.tistory.com/10

개념

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

  1. OWASP TOP 10 중 첫 번째에 속해 있으며, 공격이 비교적 쉬운 편이고 공격에 성공할 경우 큰 피해를 입힐 수 있음
  2. 인증 우회, 시스템 명령어 삽입, 웹쉘 생성 등

공격 기법

  1. Error based SQL Injection
  2. UNION based SQL Injection
  3. Blind SQL Injection (1)
  4. Blind SQL Injection (2)
  5. Stored Procedure SQL Injection
  6. Mass SQL Injection

1. Error based SQL injection

  1. 논리적 에러를 이용함
  2. 에러가 발생되는 사이트에서는 에러 정보들을 이용하여 DB 및 쿼리 구조 등의 정보를 추측 가능

<aside> ⚠️ Example (로그인)

① 공격 대상 : SELECT * FROM Users WHERE id = 'INPUT1' AND password = 'INPUT2'

② 공격 예시 : SELECT * FROM Users WHERE id = '' OR 1=1 -- ' AND password = 'INPUT2'

③ 과정 : 싱글쿼터를 닫아주기 위한 싱글쿼터와, OR 1=1 구문을 이용해 WHERE 절을 모두 참으로 만들고, -- 를 넣어줌으로써 뒤의 구문을 모두 주석 처리 해버림

④ 결과 : Users 테이블에 있는 모든 정보를 조회하게 됨으로써 가장 먼저 만들어진 계정 (보통 관리자 계정) 으로 로그인할 수 있게 됨 → 관리자 계정 탈취

</aside>

2. UNION based SQL injection