什么情况下,你需要识别WAF?

  • 渗透测试人员在前期信息收集阶段,需要识别WAF,来思考如何绕过
  • 运维人员在部署或更新WAF后,验证防护是否生效
  • 安全厂商进行市场调研时,通过WAF识别分析目标客户群体的安全产品部署情况,发掘潜在商业机会

一、WAF基本分类

1. 云WAF

  • 阿里云WAF
  • 腾讯云WAF
  • 华为云WAF
  • Cloudflare
  • AWS WAF

2. 硬件WAF

  • 绿盟WAF
  • 安恒明御WAF
  • 启明星辰WAF
  • F5 ASM
  • 深信服WAF

3. 软件WAF

  • ModSecurity
  • OpenResty WAF
  • Nginx WAF
  • NAXSI
  • WebKnight

二、WAF识别方法

不妨让我们先停下来,思考一下,在开始寻找识别WAF的具体方法之前

设想您是一名网站管理员,需要为自己的网站部署WAF防护。您会如何在Google中搜索相关信息?

是先上网搜索"如何给网站配置WAF"之类的问题吧。这时候你会发现,各大云服务商都有特别详细的产品介绍和部署文档。

比如你去看阿里云的WAF文档,它会告诉你:

① 要接入WAF,需要把你的域名CNAME解析指向 xxx.yundunwaf.com
② 配置完成后,你的网站响应头会包含这些特征…
③ 防护生效后,攻击会被拦截,显示这样的页面…

不限于此种方式,

所以,我们要先理解WAF是怎么工作的,特征是从哪来的,然后再谈如何识别WAF

1. HTTP响应头识别

1
2
3
4
5
6
7
8
9
10
# 阿里云WAF特征
Set-Cookie: aliyungf_tc=xxx
Server: tengine

# Cloudflare特征
Server: cloudflare
CF-RAY: xxxxxx

# 腾讯云WAF特征
Server: TWS

某些WAF特征只有在触发防护规则时才会显现

(1)基础特征检测方法
可以通过多种工具查看HTTP响应头来识别WAF特征:

  • 使用curl命令:curl -v -I 目标网址
  • 使用浏览器开发者工具查看Network面板
  • 使用Burp Suite等抓包工具分析响应
  • 通过Postman发送请求查看响应头

(2)特征显现

WAF的特征识别存在动态触发机制:在常规访问时,WAF可能处于静默状态,不显示明显特征标识。但当检测到潜在威胁请求(如SQL注入、目录遍历等payload)时,WAF会启动主动防护响应,在HTTP响应头中呈现出特定标识(例如Server: tengine等特征字段)。因此,进行WAF检测时请多尝试。

image-20241225101749578

image-20241225101847393

image-20241225094649547

而华为云WAF,正常访问也可以看到Server标识为CloudWAF,明确标识云WAF

image-20241225101000255

2. DNS解析 - CNAME

使用 nslookup -qt=CNAME 域名查看CNAME记录的方法,是因为大多数云WAF采用CNAME方式接入。当网站接入云WAF时,需要将域名解析指向WAF的CNAME地址,通过这个特征可以判断是否部署了云WAF以及具体是哪家的云WAF服务。局限性是仅适用于云WAF识别,无法识别硬件WAF。

如图所示,这个是华为云 Web 应用防火墙 (WAF)的解析记录

image-20241225095337691

阿里云 Web 应用防火墙 (WAF)的解析记录

image-20241225103512494

目前互联网上也有一些识别WAF的在线网站,其原理也是借助CNAME解析

image-20241225105222181

3. 错误页面特征

  • 阿里云: 特定的405页面样式
  • Cloudflare: 特有的Challenge页面
  • 安全狗: 带有特定logo的拦截页面

如图所示,这个是阿里云 Web 应用防火墙 (WAF)的解析记录

image-20241225093903582

4. 主动探测方法

3.1 发送畸形请求

1
2
GET /index.php?id=' HTTP/1.1
Host: example.com

3.2 特定payload测试

1
2
3
4
5
6
7
8
# SQL注入测试
/index.php?id=1 AND 1=1

# XSS测试
/test.php?param=<script>alert(1)</script>

# 路径遍历测试
/file.php?path=../../../etc/passwd

5. 常见WAF特征总结

阿里云WAF

  • 响应头包含 aliyungf_tc
  • 自定义拦截页面包含阿里云特征
  • 使用tengine服务器

Cloudflare

  • 响应头包含 CF-RAY
  • Challenge页面特征明显
  • 固定的5秒盾牌页面

腾讯云WAF

  • 响应头包含 TWS
  • 特定的拦截提示页面
  • 自定义错误码特征

三、识别工具推荐

  1. wafw00f
1
wafw00f http://example.com
  1. whatwaf
1
python whatwaf.py -u http://example.com
  1. Wafmap
1
wafmap -u http://example.com
  1. identYwaf
1
https://github.com/stamparm/identYwaf/tree/master

四、识别建议

WAF识别测试应采用多维度分析方法,避免过度依赖单一工具或特征造成误判,同时发送Payload注意需在合规授权前提下开展测试,控制发送频率等,确保不影响目标系统的正常运行。

五、WAF拦截界面

(1)阿里云WAF特征

等待更新……

六、自动化识别WAF的思路

等待更新……

域名、ip等区分


© Rabbit 使用 Stellar 创建

✨ 营业:

共发表 56 篇Blog 🔸 总计 123.6k