您可以将某些请求绕过 WAF。

以下是绕过 WAF 的几种方法:

通过内容长度

如果内容长度大于定义的值,则可以绕过 WAF。

自定义规则语法:

SecRule 'Variable:"value"' "phase:1,id:4000100,nolog,pass,ctl:ruleEngine=off"

示例:

在该示例中,如果 content-length 标头值大于 1048576,则请求跳过 WAF。

SecRule REQUEST_HEADERS:Content-Length "@gt 1048576" "phase:1,id:4000100,nolog,pass,ctl:ruleEngine=off"

通过分块传输编码

可以基于传输编码类型绕过 WAF。

自定义规则语法:

SecRule 'Variable "@match criteria"'""

支持对分块编码负载进行部分缓冲。将流式传输其余负载,同时保留从客户端发送的原始块边界。

示例:

在该示例中,如果用于传输的编码形式是“分块”,则请求跳过 WAF。

SecRule REQUEST_HEADERS:Transfer-Encoding "@contains chunked" "phase:1,id:4000101,nolog,pass,ctl:ruleEngine=off"

基于请求路径的特定模式

可以根据请求路径的特定模式绕过 WAF。

自定义规则语法:

SecRule 'Variable:"value"'"id:4000102,phase:1,t:none,pass,ctl:ruleEngine=off"

示例:

在该示例中,任何以字符串 /IDMProv/login.do 开头的请求将绕过 WAF。

SecRule REQUEST_URI “@beginsWith /IDMProv/login.do” “id:4000102,phase:1,t:none,pass,ctl:ruleEngine=off”