渗透时候经常会被waf之类的拦截,这时候需要知道目标站点使用了什么防火墙,然后才能根据对应防火墙寻找绕过的姿势。wafw00f就是一款识别网站防火墙的工具。
简介
wafw00f是一款基于python识别网站WAF的工具。目前项目仍在维护,毕竟防火墙特征会更新,所以这点很重要了。
原理
- 发送正常的http请求并分析响应;这样来确定WAF。
- 如果失败了,它将发送多个(可能是恶意的)http请求,并使用简单的逻辑来推断出它是哪个WAF。
- 如果还是不成功,它将分析先前返回的响应,并使用另一种简单算法来猜测WAF或安全方案是否正在主动响应我们的攻击。
很明显,最好不要到处乱扫
项目地址
https://github.com/EnableSecurity/wafw00f
命令参数
-h, --help 显示帮助信息并退出
-v, --verbose 更详细的输出,多个-v可以增加详细程度
-a, --findall 寻找所有匹配的waf,不在匹配到第一个时停止
-r, --noredirect 不遵循3xx响应给出的重定向
-t TEST, --test=TEST 测试指定的waf
-o OUTPUT, --output=OUTPUT
将输出写入csv、json或文本文件,具体取决于文件扩展名。对于stdout,指定-作为文件名。
-i INPUT, --input-file=INPUT
从文件中读取目标。输入格式可以是csv,json或文本。对于csv和json,需要一 个“url”的列名或元素
-l, --list 列出所有wafw00f能检测的waf
-p PROXY, --proxy=PROXY
使用http代理来发送请求, 例如:
http://hostname:8080, socks5://hostname:1080,
http://user:pass@hostname:8080
-V, --version 打印现在的wafw00f版本并退出.
-H HEADERS, --headers=HEADERS
通过文本文件传递自定义header以覆盖默认header设置。
用法
wafw00f http://www.victim.org/
目前支持的waf
wafw00f -l
WAF Name Manufacturer
-------- ------------
ACE XML Gateway Cisco
aeSecure aeSecure
AireeCDN