接入WAF后还是被攻击了?原因排查

速读摘要:接了 WAF 还被攻击,最常见的原因是源站 IP 泄露(攻击者绕过 WAF 直连)、部分子域名未接入、防护规则没开启、规则被变形 payload 绕过,或是应用本身存在漏洞。本文给出五步排查方法,帮你定位到底是"绕过"还是"防护不足"。
接入 WAF 后还是被攻击了?
WAF 常见误区与故障篇 · 第 91 问 · 主机吧 WAF 知识库

一、先别急着怪 WAF

WAF 被”绕过”的情况很多,但真正的”WAF 失效”其实很少。多数时候问题出在这些地方:

  • 攻击根本没经过 WAF(源站暴露)
  • 某个子域名没接入 WAF
  • 防护开关没打开
  • 攻击类型不在防护范围内
  • 应用本身有漏洞(WAF 不负责修漏洞)

二、五步排查

第一步:确认攻击是否经过 WAF

# 查看源站日志中,请求的来源 IP
# 若来源 IP 是访客真实 IP(而非 WAF 回源 IP)
#   → 说明流量没经过 WAF!直接打到了源站

tail -100 /www/wwwlogs/access.log | awk '{print $1}' | sort | uniq -c

# 对比 WAF 回源 IP 段
# 若日志中的 IP 大量不是 WAF 回源 IP → 源站暴露

第二步:检查源站是否可直连

# 用源站 IP 直接访问,看是否能访问
curl -Isk --resolve www.你的域名:443:源站IP https://www.你的域名/

# 结果判断:
#   返回 200 → 源站可直连 ❌ 攻击者可绕过 WAF
#   超时/拒绝 → 源站保护生效 ✅

# 检查子域名
for sub in mail dev test ftp admin api static; do
  echo -n "$sub: "
  dig $sub.你的域名 +short | head -1
done
# 若某个子域解析到源站 IP → 泄露点

第三步:检查防护规则

控制台检查:
  □ WAF 总开关是否开启
  □ 各防护模块是否启用(SQL/XSS/CC/Bot)
  □ 有无规则被误关
  □ 域名防护状态是否"正常"
  □ 是否有大量"观察"模式的规则(未实际拦截)

特别注意:
  如果全是"观察模式",那就是"只记录不拦截",
  看起来配了规则,实际什么都没拦。

第四步:分析具体攻击请求

# 从源站日志找出攻击请求
# 例如查找含注入特征的请求
grep -iE "union|select|script|eval|\.\./" /www/wwwlogs/access.log | head -20

# 检查这些请求:
#   ├─ 是否出现在 WAF 的拦截日志里?
#   │    出现在 → 被拦了(但可能有漏网的)
#   │    没出现 → 没经过 WAF
#   └─ 用的 payload 是什么形式?
#        变形编码 → 规则可能识别不了

第五步:区分”防护失效”与”应用漏洞”

现象判断
攻击请求有很明显特征但没被拦防护失效,需补规则
攻击请求”看着正常”但利用了业务逻辑应用漏洞,WAF 难防
攻击来自已认证用户权限问题或账号被盗
攻击通过合法接口参数实现逻辑漏洞,需代码修复

三、最常见的原因:源站 IP 泄露

这是”接了 WAF 还被打”的头号原因。攻击者通过以下途径拿到源站 IP,然后直接打源站:

泄露途径怎么查怎么修
子域名未接入遍历子域解析全部接入或删除解析
历史 DNS 记录查 DNS 历史库换 IP 或忽略
证书透明度日志查 CT 日志改用 CNAME 隐藏
邮件头发信测试看源码改用第三方邮件服务
源站未限制回源直连源站测试iptables 限制
# 最关键的修复:源站只允许 WAF 回源
iptables -I INPUT -p tcp --dport 443 -s WAF回源网段 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP
service iptables save

# 或 Nginx 层
# server 块中:
#   allow WAF回源网段;
#   deny all;

四、WAF 不负责的事

要清楚 WAF 的能力边界:

  • 不修复应用漏洞(只是拦截利用尝试)
  • 不理解业务逻辑(越权、薅羊毛难防)
  • 不防内网攻击
  • 不防已认证用户的恶意操作
  • 不防社工、钓鱼
  • 不防供应链攻击

五、小结

接了 WAF 还被打,先别怪 WAF。按”流量是否过 WAF → 源站是否暴露 → 规则是否开启 → 攻击特征分析 → 区分防护失效与应用漏洞”五步排查,多半能定位到真正原因。最常见的是源站 IP 泄露导致攻击者绕过 WAF 直连——所以”源站只允许 WAF 回源”这条配置,是接入 WAF 后必须做的第一步。

如果你的站点正被恶意爬虫、CC 攻击困扰,或需要一套开箱即用的 Web 应用防护,可以了解百度云防护 Web 应用防火墙专业版 299 元/月,年付 2399 元,可联系主机吧客服购买)——支持自定义访问策略、URI 频率限制、BOT 防护、威胁情报与 API 防护,无需改动源站代码,改 DNS 即可接入。包年包月计费,流量峰值买多少防多少,无后付费陷阱。

给TA打赏
共{{data.count}}人
人已打赏
在线客服
在线客服
热线电话
QQ客服
电子邮箱
suduwangluo