WAF: Web Application Firewall, 웹 애플리케이션에 특화된 방화벽

주요 취약점

대소문자 검사 미흡

SQL은 데이터베이스와 컬럼명을 포함해 질의문의 대소문자를 구분하지 않고 실행

탐지 과정 미흡

방화벽에서 처리하는 과정을 이용.

UNunionION SELselectECT 1,2 --
# => UNION SELECT 1,2 --  

문자열 검사 미흡

reverse('nimda')
concat('adm','in')

연산자 검사 미흡

select 1 || 1;

공백 탐지

/**/ , 백틱, 0x09(tab) 등으로 우회

 SELECT/**/'abc';
 select`username`;

UNION VALUES(num)

SELECT 구문을 사용하지 못하면 원하는 값을 반환할 수 없습니다. 이때, UNION VALUES(num)를 이용하면 원하는 값을 반환할 수 있습니다.

select 1 union values(2);