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比例