细说——WAF

目录

  • WAF是什么
  • 主流WAF有哪些/li>
  • WAF的分类
    • 软件型WAF
    • 硬件型WAF
    • 基于云WAF
    • 开源型WAF
    • 站内置的WAF
  • IPS与IDS,防火墙与WAF之间的比较和差异
    • 防火墙功能
    • IPS入侵防御系统
    • IDS入侵检测系统
    • WAF
    • 对比
      • IPS与IDS
      • 防火墙与IPS / IDS
      • WAF与IPS / IDS
  • WAF检测
    • 手工检测
    • 工具检测WAF
      • wafw00f
      • sqlmap
      • nmap
  • WAF进程与拦截页面
    • D盾
    • 云锁
    • 阿里云盾
    • 腾讯云安全
    • 腾讯宙斯盾
    • 360主机卫士
    • 奇安信 站卫士
    • 站/服务器安全狗
    • 护卫神·入侵防护系统
    • 防G01政府 站综合防护系统(“云锁”升级版)
    • UPUPW安全
    • 宝塔
    • 智创防火墙
    • 创宇盾
    • 玄武盾
    • 西数WTS-WAF
    • Naxsi WAF
    • 百度云
    • **华为云**
    • 宿云
    • 铱讯WAF
    • 安域云WAF
    • 长亭SafeLine
    • 安恒明御WAF
  • WAF绕过
    • 域名转换为ip
    • 分块编码(Transfer-Encoding)绕过WAF
    • 对抗规则绕过
      • 对关键字进行不同编码
      • 对关键字进行大小写变换
      • 通过其他语义相同的关键字替换
      • 配合Windows特性
      • 配合linux特性
    • http协议绕过
  • 更多
  • 参考

知识铺垫

WAF是什么

WAF,全称为:Web Application Firewall,即 Web 应用防火墙。对此,维基百科是这么解释的:Web应用程序防火墙过滤,监视和阻止与Web应用程序之间的HTTP流量。WAF与常规防火墙的区别在于,WAF能够过滤特定Web应用程序的内容,而常规防火墙则充当服务器之间的安全门。通过检查HTTP流量,它可以防止源自Web应用程序安全漏洞的攻击,例如SQL注入、跨站点脚本,文件包含和安全性错误配置。WAF具备以下特点:

  • 全面检测WEB代码
  • 深入检测HTTP/HTTPS
  • 强大的特征库
  • 络层的防篡改机制

更多细节参见Web 防火墙(WAF)是什么传统防火墙区别是什么/p>

一言蔽之,WAF就是部署在 站上的一个东东,之所以说它“东东”,是因为这玩意分好几种类型。

主流WAF有哪些/h1>

软件型WAF

以软件的形式安装在服务器上,可以直接检测服务器是否存在webshell,是否有文件被创建等
D盾,云锁, 防G01,安全狗,护卫神,智创,悬镜,UPUPW,安骑士

硬件型WAF

以硬件的形式部署在链路中,支持多种部署方式,当串联到链路中时可以拦截恶意流量,在旁路监听时只记录攻击,不拦截
绿盟、安恒、铱迅、天融信、深信服、启明星辰、知道创宇、F5 BIG-IP

基于云WAF

一般以反向代理的形式工作,通过配置NS或CNAME记录,使得对 站的请求 文优先经过WAF主机,经过WAF主机过滤后,将被认为无害的请求 文再发送给实际 站服务器进行请求,可以认为是自带防护功能的CDN
安全宝、创宇盾、玄武盾、腾讯云(T-Sec Web 应用防火墙)、百度云(应用防火墙 WAF)、西部数码、阿里云盾、奇安信 站卫士

开源型WAF

Naxsi、OpenRASP、ModSecurity

站内置的WAF

站系统内置的WAF直接镶嵌在代码中,相对来说自由度高, 站内置的WAF与业务更加契合

IPS与IDS,防火墙与WAF之间的比较和差异

如果你在学习WAF的时候,常常对WAF、防火墙、IPS等概念感到费解,你可以直接查看我参考的原文(我这里重新排版了)
首先明确一下缩写词汇:

这些设备的拓扑如下

顾名思义,入侵防御系统(IPS)是一种安全设备,其主要任务是防止 络入侵。
这就是为什么IPS与数据包流串联连接的原因。从上面的 络拓扑(带IPS的防火墙)可以看出,IPS设备通常连接在防火墙后面,但是位于通信路径的串联位置,该通信路径向内部 络/从内部 络传输数据包。
为了使IPS设备在到达内部服务器之前立即阻止恶意流量,需要上述放置。
通常,IPS是基于签名的,这意味着它具有已知恶意流量,攻击和利用的数据库,如果它看到匹配签名的数据包,则它将阻止流量。
此外,IPS可以处理统计异常检测,管理员设置的规则等。

IDS入侵检测系统

WAF(Web应用程序防火墙)专注于保护 站(或通常的Web应用程序)。
它在应用程序层工作以检查HTTP Web流量,以检测针对 站的恶意攻击。
例如,WAF将检测SQL注入攻击,跨站点脚本,Javascript攻击,RFI / LFI攻击等。
由于当今大多数 站都使用SSL(HTTP),因此WAF还可以通过终止SSL会话并在WAF本身上检查连接内部的流量来提供SSL加速和SSL检查。
如上图所示(带有WAF的防火墙),它被放置在 站的前面(通常)在防火墙的DMZ区域中。
有了WAF,管理员可以灵活地限制对 站特定部分的Web访问,提供强身份验证,检查或限制文件上传到 站等。

对比

IPS与IDS

入侵防御系统 入侵检测系统
络布局 串联(串联)与 络流量 与流量并行(带外)
操作模式 活动设备。可以主动阻止攻击流量。 被动装置。无法阻止攻击流量,只能检测。
检测机制 基于签名,基于规则,统计异常检测等 基于签名,基于规则,统计异常检测等
封锁选项 在 络级别阻止数据包,重置连接,提醒管理员等 提醒管理员,发送重置连接请求。
硬件功能 必须具有高性能才能执行深度数据包检查,并且不能减慢流量。 不需要非常高性能,因为它不会干预流量。但是,为了实时掌握流量,它必须能够处理线路带宽。

防火墙与IPS / IDS

防火墙功能 入侵防御/入侵防御
络布局 通常放置在 络的前端以控制流量。 防火墙后的线内或带外。
主要用例 允许或阻止不同 络区域之间的流量。 专门检查 络数据包以使其与已知恶意攻击的特征进行匹配。然后,流量被阻止或发出警 。
检测机制 通常适用于第4层,以允许或阻止IP地址和端口。 基于签名,基于规则,统计异常检测等
封锁选项 在 络级别阻止或允许数据包。 检测攻击并直接阻止流量或发送警 。
硬件功能 通常具有许多物理 络接口,以便将 络划分为不同的安全区域。 必须具有高性能才能执行深度数据包检查,并且不能减慢流量。

WAF与IPS / IDS

WAF 入侵防御/入侵防御
络布局 放置在 站/ Web应用程序的前面 防火墙后的线内或带外。
主要用例 专用于仅检查HTTP Web流量并防止Web特定攻击。 专门检查所有 络数据包,以使其与已知恶意攻击的特征进行匹配。然后,流量被阻止或发出警 。
防范这些安全攻击(示例) SQL注入,跨站点脚本,GET / POST攻击,会话操纵攻击,javascript,LFI / RFI等 针对Web服务器,SMTP,RDP,DNS,Windows OS,Linux OS等服务的利用。

WAF检测

检测WAF的方法较多,可以通过NMAP、wafw00f、检查响应标头,检查响应正文等方式

手工检测

譬如,我这里直接来个XSS

这个时候你可以直接看到被WAF拦截了,WAF是华为云。你也可以通过响应头看到WAF

工具检测WAF

wafw00f

检测WAF的方法
wafw00f是一个Web应用防火墙(WAF)指纹识别的工具。
下载地址:https://github.com/EnableSecurity/wafw00f
wafw00f的工作原理:

  1. 发送正常的HTTP请求,然后分析响应,这可以识别出很多WAF。
  2. 如果不成功,它会发送一些(可能是恶意的)HTTP请求,使用简单的逻辑推断是哪一个WAF。
  3. 如果这也不成功,它会分析之前返回的响应,使用其它简单的算法猜测是否有某个WAF或者安全解决方案响应了我们的攻击。

kali上内置了该工具:

sqlmap

如果 站存在WAF,sqlmap会有提示。

nmap识别waf指纹

云锁

腾讯云安全

360主机卫士

站/服务器安全狗

防G01政府 站综合防护系统(“云锁”升级版)

宝塔

创宇盾

西数WTS-WAF

百度云

宿云

安域云WAF

安恒明御WAF

细说——WAF

WAF绕过

站存在WAF,意味着我们不能使用安全工具对 站进行测试,因为一旦触碰了WAF的规则,轻则丢弃 文,重则拉黑IP。所以,我们需要手动进行WAF的绕过。

WAF的工作原理放到这里说一下,WAF的主要难点是对入侵的检测能力,尤其是对Web服务入侵的检测,WAF最大的挑战是识别率。对于已知的攻击方式,可以谈识别率,但是对于未知的攻击手段,WAF是检测不到的。目前市面上大多数的WAF都是基于规则的WAF。即WAF对接数据收到的包进行正则匹配过滤,如果正则匹配到与现有漏洞知识库的攻击代码相同,则认为这个恶意代码,从而对于进行阻断。所以,对于基于规则匹配的WAF,需要每天都及时更新最新的漏洞库。对于这种WAF,它的工作过程是这样的:**解析HTTP请求——>匹配规则——>防御动作——>记录日志 **
具体实现如下:

  1. 解析http请求:协议解析模块
  2. 匹配规则:规则检测模块,匹配规则库
  3. 防御动作:return 403 或者跳转到自定义界面,或者不返回任何数据,或者拉黑IP
  4. 日志记录:记录到elk中

从WAF工作的过程我们可以看到,要想绕过WAF,我们只有在 WAF解析HTTP请求 或 WAF匹配规则 两个地方进行绕过。因为第三、四步是WAF匹配到攻击之后的操作,这时候WAF已经检测到攻击了。
【绕WAF这个事,可以说,方式的很灵活的,写起来很杂,以后再积累更新】
/p>

域名转换为ip

有些WAF设置的是针对域名的防护,在有些时候,我们可以尝试将域名改成ip地址有可以绕过WAF的防护。
(小声bb,其实这很鸡肋,一般来说,规则是不会匹配host是域名还是ip,除非是为了避免误 才可能匹配host)

分块编码(Transfer-Encoding)绕过WAF

这种绕过方法利用的是WAF在解析HTTP协议的过程,既然WAF连我们的攻击代码都没有解析完全,那么第二步的正则匹配也就匹配不到我们的攻击代码了,自然就可以绕过了。

相关文章:
在HTTP协议层面绕过WAF
利用分块传输吊打所有WAF
[技术]编写Burp分块传输插件绕WAF
HTTP 协议中的 Transfer-Encoding

对抗规则绕过

对关键字进行不同编码

这种方式实用价值一般,譬如检测xss的时候,我会加一条逻辑与来匹配编码

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年9月9日
下一篇 2021年9月9日

相关推荐