什么是WAF?
WEB应用防火墙 (Web Application Firewall)
定义:通过执行一系列针对HTTP/HTTPS的安全策略来防御对Web应用的攻击。
WAF绕过方法
1. 大小写混合
在规则匹配时只针对了特定大写或特定小写的情况,在实战中可以通过混合大小写的方式进行绕过(现在几乎没有这样的情况),如下所示。
uNion sElEct 1,2,3,4,5
2.URL编码
极少部分的 WAF 不会对普通字符进行 URL 解码,如下所示。union select 1,2,3,4,5 上述命令将被编码为如下所示的命令。
%75%6E%69%6F%6E%20%73%65%6℃%65%63%74%20%31%2℃ %32%2℃%33%2C%34%2C%35
还有一种情况就是 URL 二次编码,WAF 一般只进行一次解码,而如果目标 Wb 系统的代码中进行了额外的 URL 解码,即可进行绕过。
union select 1,2,3,4,5
上述命令将被编码为如下所示的命令。
%2575%256E%2569%256F%256E%2520%2573%2565%256C%2565%2563%2574%2520%2531%252℃%2532%252C%2533%252C %2534%252C%2535
3. 替换关键字
WAF采用替换或者删除select/union这类敏感关键饲的时候,如果只匹配次则很容易进行绕过。
union select 1,2,3,4,5
上述命令将转换为如下所示的命令。
unuionion selselectect 1,2,3,4,5
4. 使用注释
注释在截断 SQL 语句中用得比较多,在绕过 WAF 时主要使用其替代空格(/*任意内容*),适用于检测