WAF 规则与防御
文章目录
- 绕过 WAF 的五种可能情况: - WAF 在网络层数据包过滤时没有过滤掉危险字符。
- 没有使用反向代理服务器等。
- 利用C语言中的0字节截断绕过 WAF。
- WAF 对某些 User_agent 特殊放行(如 Baidu 的 Spider 的 UA );WAF 对某些 POST 包特殊放行。
- 利用 mysql 的语法特性和 html 代码的特殊书写方式、浏览器的渲染方式绕过。由于实际渗透测试过程中对 WAF 的实际检测逻辑并不清楚,所以利用 fuzz 是最好的方法,这也是 WAF 最常见的绕过方法。
- WAF 无法预料,多次恶意代码和检测留下来的隐患。(经过 WAF 时,通过了检测(并没有关键词),然后经过 php 的字符串处理后,依然输出了恶意代码。)
- HTTP 畸形包(利用 Apache 对 HTTP 包的兼容性和 WAF 对畸形 HTTP 包的不兼容性绕过 WAF)
 
- 扫描器的识别规则做法(用于防扫描器扫描): - 扫描器指纹( head 字段/请求参数值等) 
- 单IP+ cookie某时间段内触发规则次数 
- 隐藏的链接标签( - <a>)
- Cookie 植入 
- 验证码验证 
- 单 IP 请求时间段内 Webserver 返回 http 状态404比例 
 
