<aside> 💥 공격자의 SQL 삽입
</aside>
악의적인 사용자가 응용 프로그램 보안 상의 허점을 의도적으로 이용해, 악의적인 SQL문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위다.
주로 사용자가 입력한 데이터를 제대로 필터링, 이스케이핑하지 못했을 경우에 발생한다. 이러한 injection 계열의 취약점들은 테스트를 통해 발견하기는 힘들지만 스캐닝툴이나 코드 검증절차를 거치면 보통 쉽게 발견되기 때문에 탐지하기는 쉬운 편이다.
인젝션 공격은 OWASP에서도 1순위로 분류되었던 만큼 공격이 성공할 경우 큰 피해를 입힐 수 있어 보안에 각별한 주의가 필요하다.
가장 대중적인 방법으로 SQL 쿼리에 고의적으로 오류를 발생시키고 이때 출력되는 에러의 내용으로 필요한 정보를 찾아내는 공격 기법
e.g. 로그인 공격 예시
로그인 페이지가 있고, 로그인을 할 때 USER_ID와 INPUT_PW를 입력받아 로그인이 진행된다고 했을 때
SELECT user FROM Users WHERE uid = 'USRE_ID' AND upw = 'INPUT_PW';
SELECT user FROM Users WHERE uid = '' OR 1 = 1 --USRE_ID' AND upw = 'INPUT_PW';
'OR 1 = 1 --를 입력합니다.