Oh! JUN

검색 기능에 대한 올바른 취약점 점검 방법 본문

웹 해킹/SQL Injection

검색 기능에 대한 올바른 취약점 점검 방법

Kwon Oh! JUN 2022. 8. 4. 20:59

검색 기능의 일반적인 구문 

select * from board where title like '%_________%'

검색 기능은 문자에서 검색 하고자 하는 내용을 담고 있어야 하니까 '%_____%'   

 


select * from board where title like '%' and '%'='%'

title like '%' : 참

'%'='%' : 참

고로 title like '%' and '%'='%' : 참

 

* %는 와일드 문자로 0개 이상의 문자를 포함하고 있다.

like랑 같이 쓰여야 와일드 문자의 기능을 한다. 

그래서 test like '%'는 모든 내용을 검색하는거고

and '%' = '%'는 like 구문이 아니어서 %는 단순 문자로 쓰이게된다.

 

모든 내용이 검색된걸 확인할 수 있다.


select * from board where title like '%' and 1=1 and '%'='%'

1=1 참이니까 모든 내용 검색

 

select * from board where title like '%' and 1=2 and '%'='%'

1=2 거짓이니까 아무것도 검색 되지 않음


(*oracle 버전임)

select * from board where title like '%'||(case when 1=1 then 'test' else 'aaaaa' end)||'%'

1=1 참이니까 'test' 내용 검색

 

select * from board where title like '%'||(case when 1=2 then 'test' else 'aaaaa' end)||'%'

1-2 거짓이니까 'aaaaa' 검색인데 없으니까 아무것도 검색되지 않음