Home SQL Injection Filtering Bypass
Post
Cancel

SQL Injection Filtering Bypass

Mysql에서 SQL Injection Filtering Bypass에 대해서 알아봅시다.


Whitespace Filtering Bypass

공백 문자 필터링은 %09, %0a, %0b, %0c, %0d, %a0, /**/ 를 사용하여 우회할 수 있습니다.

문자열의미
%09수평 탭
%0aLine Feed
%0b수직 탭
%0c페이지 넘김
%0dCarriage Return
%a0비중간 공백
/**/주석문자

공백우회

() 을 이용하여 우회할 수 있습니다.

공백우회2


String Filtering Bypass

문자열 필터링은 2진법, 16진법등 진법을 이용하여 우회가 가능합니다.
환경에 따라서는 싱글쿼터가 없이 x,b만 넣어서 동작하는 경우가 있습니다. 문자열우회

또한 concat 을 이용하여 우회가 가능합니다.

문자열우회


Number Filtering Bypass

숫자가 필터링이 되어 있는 경우는 auto type cast 을 이용하여 우회가 가능합니다. 숫자우회


Blind SQL Injection

mysql에서 Blind SQL Injection을 수행하기 위해 일반적으로 자르기 함수substr, substring을 이용해서 문자열을 잘라서 가져옵니다.
해당 함수가 필터링이 되어 있을 경우 like, mid, left, right, lpad, rpad, reverse 등 함수를 이용할 수 있습니다.

Blind

Blind2


조건 구문 SQL Injection

mysql에서는 조건 구문으로 if, case when, ifnull(), nullif() 을 이용할 수 있습니다.

if1


Time based SQL Injection

mysql에서는 sleep, benchmark 등을 이용할 수 있습니다.

time


TIP

원하는 테이블 정보를 찾기 어려울 때 현재 사용중인 쿼리 SELECT info FROM information_schema.processlist를 조회할 수 있습니다. TIP


Reference

SQL참고자료