WAF 识别
WAFW00F
在KaliLinux中提供了一款防火墙探测工具“wafw00f”(这里是数字“00”,千万别搞错了),这个工具可以通过发送正常以及不正常甚至是包含恶意代码的HTTP请求,来探测网站是否存在防火墙,并识别该防火墙的厂商及类型。
1. WAFW00F 检测原理
-
发送正常的 HTTP请求并分析响应;这确定了许多WAF解决方案。
-
如果不成功,则发送多个(可能是恶意的)HTTP请求,触发WAF的拦截来获取其返回的特征进而判断所使用的WAF类型。
-
如果还是不成功,则分析先前回复的响应,并使用另一种简单算法来猜测WAF或安全解决方案是否正在积极响应我们的攻击。
2. WAFW00F 入门教程
2.1 查看 WAFW00F 支持检测的WAF类型
wafw00f -l
2.2 查看 WAFW00F 常用指令
wafw00f -h
参数: | 说明: |
---|---|
-h, --help | 显示此帮助消息并退出 |
-v, --verbose | 启用详细程度,多个-v选项增加详细程度 |
-a, --findall | 查找所有与签名匹配的WAF,不要停止对第一个WAF的测试 |
-r, --noredirect | 不要遵循3xx响应提供的重定向 |
-t TEST, --test=TEST | 针对一个特定WAF的测试 |
-o OUTPUT, --output=OUTPUT | 根据文件扩展名将输出写入csv、json或文本文件。对于stdout,指定-作为文件名。 |
-f FORMAT, --format=FORMAT | 强制输出格式为csv、json或文本。 |
-i INPUT, --input-file=INPUT | 从文件中读取目标。输入格式可以是csv、json或text。对于csv和json,需要“url”列名或元素。 |
-l, --list | 列出WAFW00F能够检测到的所有WAF |
-p PROXY, --proxy=PROXY | 使用HTTP代理执行请求,例如:http://hostname:8080,socks5://主机名:1080,http://user:pass@主机名:8080 |
-V, --version | 打印出当前版本的WafW00f并退出。 |
-H HEADERS, --headers=HEADERS | 通过文本文件传递自定义标头以覆盖默认标头集。 |
2.3 测试单个URL
wafw00f baidu.com
2.3 测试单个URL
wafw00f baidu.com