
- SQL Injection은 웹 어플리케이션이 백엔드에서 구동 중인 데이터베이스에 질의하는 과정에 사용되는 SQL 쿼리를 조작하여 데이터베이스를 대상으로 공격자가 의도한 악의적인 행위를 할 수 있게 하는 취약점
- 조직 내부의 민감한 데이터나 개인정보를 획득할 수 있으며, 심각한 경우 조직의 데이터 전체를 장악하거나 손상 시킬 수 있음






Union 기반 SQL Injection
공격자가 의도한 SQL 쿼리를 UNION 연산자를 이용하여 기존 SQL 쿼리문에 덧붙이고 기존 SQL을 무효화시켜 원하는 내부 데이터를 절취할 수 있는 공격 기법
Blind SQL Injection
- 웹 브라우저 화면상에 데이터베이스 오류 정보나 데이터가 직접적으로 노출되지 않을 때 이용되는 기법
- 공격자가 육악으로 확인할 수 있는 데이터베ㅔ이스 오류나 데이터가 없다는 점에 착안되어 Blind SQL Injection 혹은 추론 기반 SQL Injection이라고 함
- 공격자는 공격이 성공했는지 판단하기 위해 미세한 서버의 응답과 동작 방식까지 분석하여 단서로 활용
Boolean 기반
- SQL 쿼리의 결과가 참 또는 거짓이냐에 따라 웹 애플리케이션의 응답이 다른 경우 사용됨
- 참/거짓만을 판단할 수 있는 서버의 응답만으로 공격을 수행하므로 공격자의 많은 시간과 노력이 소요됨
Time 기반
- SQL 쿼리의 결과가 참 또는 거짓이냐에 따라 서버의 응답 시간을 제어할 수 있을 때 사용
- MySQL의 Sleep(5000);와 같이 밀리초의 단위의 시간 동안 대기하는 SQL 명령을 사용해 공격의 성공 여부를 판단
- 공격자가 지정한 시간만큼 응답이 지연된다면 SQL Injection에 성공한 것으로 간주
', 겹따옴표", 세미콜론;, 대시-, 샵#, 슬래시샵/# 등