[Web] SQL 쿼리 취약점 정리
SQL 쿼리문 별 우회 방법
SELECT 문 : WHERE 조건문을 통해 쿼리를 조작함.
INSERT 문 : VALUES 안에 동일한 형태의 데이터 개수와 타입이 필요함.
-> 개수는 점차 늘려가면서 시도함.
-> 정수형에서 문자형으로 묵시적 형 변환
-> 1 값을 이용
-> 20000 값을 이용
UPDATE 문 : WHERE 조건문을 포함하면서, INSERT와 거의 동일하게 동작함.
DELETE 문 : WHERE 절에서 사용자의 입력 값을 받아 처리함.
ORDER BY 문 : UNION/WHERE/OR/AND 키워드를 받아들이지 않기 때문에 중첩 쿼리(SELECT 1 WHERE <조건>)를 이용해야함.
UNION 문 : 두 개 이상의 SELECT문을 하나의 결과로 합칠 때 사용됨.
-> 앞 뒤 SELECT가 동일한 구조이어야 함.
-> 서로 동일한 개수의 칼럼이어야함.
-> 서로 동일한 데이터타입을 가져야함.
-> 정확한 테이블명과 칼럼명
-> 데이터 타입을 모른다면 SELECT NULL을 이용 (묵시적 형변환)
DB 버전 출력 : (MYSQL) @@version
(ORCLE) v$version
메타데이터 테이블명 : (MYSQL) INFORMATION_SCHEMA.COLUMNS