当前位置: 首页 > news >正文

wafw00f 防火墙探测

kali机器自带防火墙探测工具wafw00,它可以通过发送正常以及不正常甚至包含恶意代码的HTTP请求,来探测网站是否存在防火墙,并识别防火墙的厂商及类型。
安装:
git clone https://github.com/EnableSecurity/wafw00f.git
python setup.py install

一、检测原理

首先发送一个正常的HTTP请求,然后观察其返回有没有一些特征字符,可以识别一些WAF。
如果不成功,则发送多个(可能是恶意的)HTTP请求,触发WAF的拦截来获取其返回的特征进而判断所使用的的WAF类型。
如果还是不成功,则分析先前回复的响应,并使用另一种简单算法来猜测WAF或安全解决方案是否正在积极响应我们的攻击。

、wafw00f使用

  • -p      设置代理
  • -r      不遵循3xx状态的重定向
  • -t      测试一个指定的WAF
  • -o      输出文件,文件类型取决于文件名后缀,支持csv、json、文本
  • -i      从文件中读取目标。输入格式可以是csv,json或文本。
  • -l      显示支持探测的所有WAF列表
  • -H      设定一个头文件信息,用以覆盖默认的头信息
1、支持检测的WAF类型
wafw00f -l
2、测试单个 URL
wafw00f   ip(或网址)
结果显示百度显然是有waf的。它用的服务器应该是BWS/1.1,但响应包中返回的服务器是Apache,猜测可能是修改了响应包头的返回。
结果表明example.org位于Edgecast (Verizon Digital Media) WAF之后。
3、测试多个 URL
wafw00f iqiyi.com mozhe.com
4、匹配所有签名特征的WAFS
wafw00f  ip  -a 
5、-i  从文件中读取目标。输入格式可以是csv,json或文本。
csv格式:
json格式:

三、代码实现主体

插件形式实现各类WAF的检测。
每类WAF检测中,又通过正则匹配响应Headers内容。
访问https://example.org:
edgecast.py:
#!/usr/bin/env python
'''
Copyright (C) 2022, WAFW00F Developers.
See the LICENSE file for copying permission.
'''
NAME = 'Edgecast (Verizon Digital Media)'def is_waf(self):if self.matchHeader(('Server', r'^ECD(.+)?')):return Trueif self.matchHeader(('Server', r'^ECS(.*)?')):return Truereturn False
F12中看到返回的Headers中有“Server ECS (sab/5695)”,与匹配规则匹配,推断https://example.org网站有防火墙Edgecast。

四、参考

GitHub - EnableSecurity/wafw00f: WAFW00F allows one to identify and fingerprint Web Application Firewall (WAF) products protecting a website.

聊聊 Wafw00f 源码及流量特征-51CTO.COM

http://www.lryc.cn/news/22988.html

相关文章:

  • MySQL学习(1)[参考书籍:mysql是怎么运行的]
  • 用Python制作邮件检测器
  • K8S---pod基础概念
  • 激活函数入门学习
  • 小文智能结合ChatGPT的产业未来
  • Linux-编写一个自己的命令
  • Nacos架构篇 - Distro协议
  • 和月薪3W的聊过后,才知道自己一直在打杂...
  • 关于Ubuntu18.04 root账户登录的问题
  • 基于jeecgboot的flowable的H5版本在演示系统发布
  • 【代码训练营】day44 | 完全背包理论 518. 零钱兑换 II 377. 组合总和 Ⅳ
  • ICA简介:独立成分分析
  • ②【Java 组】蓝桥杯省赛真题解析 [振兴中华] [三部排序] 持续更新中...
  • PostgreSql 视图
  • 【PAT甲级题解记录】1150 Travelling Salesman Problem (25 分)
  • vue生命周期
  • 排查解决Java进程占用内存过高
  • 一个基于 LKM 的 Linux 内核级 rootkit 的实现
  • CAN工具 - ValueCAN - 基础介绍(续)
  • 一个Laravel+vue免费开源的基于RABC控制的博客系统
  • 从 B 站出发,用 Chrome devTools performance 分析页面如何渲染
  • Java异常Throwable的分类
  • 【mybatis的#和$使用和区别】
  • 感知趋势,洞察发展:2023(第十届)趋势与预测大会成功举办
  • Spring-Aop核心技术
  • webpack常用优化原理剖析
  • 【现在努力还不晚】--MySQL数据库的数据模型
  • 二手商品交易网站
  • 第三阶段04-同步请求和异步请求,get/post,Josn,pojo,Session/Cookie,过滤器Filter
  • Spark学习:spark相似算子解析