카티션 곱

만두다섯개·2024년 2월 14일
0

호기심

목록 보기
11/29

카티션 곱이란 두 개 이상의 집합에서 가능한 모든 조합을 생성하는 연산이다. 이는 SQL Injection을 위해 사용하는 공격문으로 사용할 수 있다.


만약 위와 같은 쿼리가 있다고 가정해보자.

4줄로 이뤄진 쿼리지만, 한줄로 존재한다고 가정.

K와 Q 별칭으로 Q.SALARY 와 ID 동일한 Join 조건이 존재한다.
만약 여기서 e_salary에 아래와 같은 입력을 사용한다면?

'9999')--'

위 사진과 같이 주석으로 인해 뒷 부분이 주석처리된다. 따라서 Join 조건 중 하나가 없으므로 카티션 곱이 발생해 WHERE 절이 없는 것과 동일한 결과를 보여준다.

아래와 같은 쿼리문과 동일하게 된다.

결론

카티션 곱 발생 조건

  1. Join 조건
  2. 논리적으로 잘못된 조인 조건 : 문법 오류가 존재하는 쿼리가 아님.
profile
磨斧爲針

0개의 댓글