1. 绕过 WAF 的五种可能情况:

    1. WAF 在网络层数据包过滤时没有过滤掉危险字符。
    2. 没有使用反向代理服务器等。
    3. 利用C语言中的0字节截断绕过 WAF。
    4. WAF 对某些 User_agent 特殊放行(如 Baidu 的 Spider 的 UA );WAF 对某些 POST 包特殊放行。
    5. 利用 mysql 的语法特性和 html 代码的特殊书写方式、浏览器的渲染方式绕过。由于实际渗透测试过程中对 WAF 的实际检测逻辑并不清楚,所以利用 fuzz 是最好的方法,这也是 WAF 最常见的绕过方法。
    6. WAF 无法预料,多次恶意代码和检测留下来的隐患。(经过 WAF 时,通过了检测(并没有关键词),然后经过 php 的字符串处理后,依然输出了恶意代码。)
    7. HTTP 畸形包(利用 Apache 对 HTTP 包的兼容性和 WAF 对畸形 HTTP 包的不兼容性绕过 WAF)
  2. 扫描器的识别规则做法(用于防扫描器扫描):

    1. 扫描器指纹( head 字段/请求参数值等)

    2. 单IP+ cookie某时间段内触发规则次数

    3. 隐藏的链接标签(<a>)

    4. Cookie 植入

    5. 验证码验证

    6. 单 IP 请求时间段内 Webserver 返回 http 状态404比例