참고 사이트
https://m.blog.naver.com/PostView.nhn?blogId=koromoon&logNo=120172851234&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F
2개 이상의 쿼리를 요청하여 결과를 얻는 UNION이라는 SQL 연산자를 이용한 SQL Injection 공격
공격자는 이 연산자를 이용하여 원래의 요청에 한 개의 추가 쿼리를 삽입하여 정보를 얻어낸다
조건: 컬럼의 갯수가 같아야 하고 데이터 형식도 같아야 하며 해당 결과 집합 컬럼은 호환되는 데이터 형식을 가져야 한다!
UNION의 결과 집합 컬럼 이름은 UNION의 첫 번째 SELECT문의 결과 집합에 있는 컬럼 이름과 동일, 다른 SELECT무느이 결과 집합 컬럼 이름은 무시됨
기본적으로 UNION 연산자는 결과 집합에서 중복 행을 제거함
* ALL 옵션을 사용하면 결과에 모든 행이 포함되고 중복 행은 제거되지 않는다.
SQL Injection에 주로 사용되는 문자열
' 문자 데이터 구분기호
; 쿼리 구분 기호
-- Oracle, MSSQL 해당 라인 주석구분 기호
# MySQL 해당 라인 주석구분 기호
/* */ 구문주석
|| 문자연결 (Oracle에만 해당)
order by를 이용하여 컬럼의 갯수를 알 수 있다!
' order by 1--
' order by 7--
'웹 해킹 > 웹 해킹 개념' 카테고리의 다른 글
웹로그분석 (0) | 2018.03.19 |
---|---|
프락시 툴을 이용한 HTTP 분석 (0) | 2018.03.19 |
웹쉘 Web Shell, PHP File Upload 취약점 (0) | 2018.02.12 |
HEADER INJECTION (0) | 2018.02.12 |
XSS 연습 (0) | 2018.02.10 |