Waf的分类和绕过Waf的方法有哪些?

简介: WAF(Web应用防火墙)是保护Web应用的安全防线,常见类型包括软件型、硬件型、云WAF和自定义WAF。各类WAF各有优劣,云WAF因成本低、易部署广受欢迎。然而,WAF并非绝对安全,攻击者可通过增加负载、构造异常数据包、绕过白名单等方式尝试绕过防护。了解WAF原理与绕过技巧,有助于提升Web安全防护能力。

WAF,全称Web应用防火墙(Web Application Firewall),是专为Web应用程序设计的安全设备或服务。位于Web服务器前端,通过监控、过滤和分析HTTP/HTTPS流量,识别和阻止恶意请求,保护Web应用程序免受各种网络攻击。若在上云或使用WAF过程中有不懂的,可寻小编翼龙云助力上云用云获取帮助。

111.jpg

1.目前来看,市面上的Waf通常有以下几种:

1、软件型Waf
软件型Waf是安装在服务器上的一个安全软件,因为安装在服务器本地,所以它可以直接接触服务器上的文件, 直接检测服务器上是否 存在webshell、是否有文件被篡改等危险动作。
相较而言,由于是软件形式,就好比我们windows电脑上使用360卫士软件一样。它使用方便,服务器上即装即用,且功能丰富,有图形界面,对于管理人员来说,管理起来非常舒服。
但是同时,由于它是软件,如果要实现对每个请求的解析、识别,可能会存在占用服务器内存过多的情况。除此之外,也存在误报 的可能。因而,软件型Waf往往适合中小型网站。

2、硬件型Waf
硬件型Waf以硬件形式部署在链路中,支持多种部署方式。
当串联时,可以拦截恶意流量
当并联时,可以只记录攻击不进行拦截
常规硬件Waf的实现方式是通过代理技术代理来自外部的流量,并对请求包进行解析,通过安全规则库的攻击规则进行匹配,如成功匹配规则库中的规则,则识别为异常并进行请求阻断。
相较而言,由于是硬件,所以一般情况下可承受较高的数据吞吐量,且当管理员选择串联模式接入时时,同一个交换机下的所有服务器,都将处于防火墙的防护范围之类。
但其价格昂贵,价格动辄便是几十万甚至几百万,对中小型企业并不友好

3、云Waf
云Waf是近年来随着云计算的推动衍生出来的新产品,云WAF,也称WEB应用防火墙的云模式。云WAF的维护成本低,不需要部署任何硬件设备,云WAF的拦截规则会实时更新。对于部署了云WAF的网站,我们发出的数据请求首先会经过云WAF节点进行规则检测,如果请求匹配到WAF拦截规则,则会被WAF进行拦截处理,对于正常、安全的请求则转发到真实Web服务器中进行响应处理。

4、 自定义WAF
我们在平时的渗透测试中,更多情况下会遇到的是网站开发人员自己写的防护规则。网站开发人员为了网站的安全,会在可能遭受攻击的地方增加一些安全防护代码,比如过滤敏感字符,对潜在的威胁的字符进行编码、转义等。

222.jpg

2.WAF绕过思路方法
WAF在渗透测试中,是我们要面对的第一关卡,渗透测试人员对站点WAF的绕过过程就是渗透测试人员与网站管理员(或WAF开发者)进行PK的过程。在对WAF的渗透时,一般可以考虑采用以下方式展开。

一、增加WAF负担
WAF是为网站安全服务的,但是WAF的存在如果干扰了网站的正常运行,则会得不偿失,因此,网站管理员一般会恰当的配置WAF,起到在不会干扰网站正常运行的前提下,对用户的输入进行过滤的作用。因此,有些WAF就会设置如果数据包长度过长,就对部分数据包或者是数据包的部分内容进行无检测“放行”,根据这一原理,可以考虑以增加WAF负担的方式,进行绕过WAF。
1、增加变量参数个数
有些云WAF,因为配置的原因,在检测参数时,只会检测部分参数,如safedog,只会检测前100个参数,这样,就可以人为的加入很多没有意义的参数,然后把有用的参数放到最后面,就可以绕过云waf的检验了。
2、增加参数长度
此方式常见于文件上传漏洞中对于用户文件内容进行检测的场景,增加前面无意义的内容,把webshell放在文件的最后,即可绕过WAF的检验。此外,在进行SQL注入测试时,故意增加url的长度,并将其注释掉,也可以起到一定的效果。在进行XSS测试的时候,加入一些无意义的数据,也可以起到相应相应的作用。
3、增加WAF负载
采用这种方式一定要在有把握的情况下进行,原理是有些WAF在进行工作的时候,如果站点流量过大,则为了保证网站的可用性,会放弃对部分数据包的检验。因此,我们可以向WAF大量的发送正常的数据包,同时在其中夹杂异常的数据包,此时或许绕过WAF的检验。当然,在这种情况下,要谨慎的设置攻击模式,避免用此方式对站点造成的宕机。

二、构造异常数据包
WAF不是人,因此WAF在进行检验匹配的时候会比较死板(ps:有些云WAF,会采取基于大数据和机器学习算法的防御方式,这个时候就可能比较难以注入),尤其是在采取黑名单为基础的过滤方式情况下,更明显的表现在没有对WAF进行合理配置的情况下,在这种情况下,人为的故意发送异常的数据包,可能会起到绕过WAF的作用。(ps:当然了,构造的数据包也不能过于奇葩,导致服务器站点不能解析数据包中的内容,这样就没用了)
此外,WAF和网站的配合有时并不会那么完美,有些网站中间健所含有的漏洞,未必被WAF所保护,考虑到WAF是通用配置,在防护Nginx、windows和Apache等不同站点类型的情况下,未必能够配置的那么完美,因此,WAF在设计过程中,存在天然的缺陷,而这些缺陷就可以被我们利用。
1、双参数绕过
有时,可以使用双参数绕过的方式来绕过WAF,比如说网站有一个参数id,则可以在数据包中含有两个id参数,这时WAF有可能只检查了第一个id的内容,从而第二个id的poc进入到服务器被执行。
2、请求方式转换
有时,WAF会只检验GET类型的包,而忽略掉POST类型的包,或者相反。在这种情况下,就可以修改数据包的类型,尝试绕过数据包。有时,把数据包改成其他的,如request类型或者是根本就不存在的类型也会起到意想不到的效果。
3、绕过匹配规则
这里的通用绕过思路,即在进行sql注入测试、XSS测试、文件相关漏洞测试等测试时一些通用的绕过思路,常见的有:
①双写绕过
②大小写绕过
③编码绕过
④注释绕过
⑤使用不常用的函数
⑥文件上传相关绕过方式
⑦字符串拼接
⑧空白符绕过

三、绕过WAF
有时,站点采用了云WAF,此时,如果能够找到真实的服务器IP地址,则可以绕过WAF的检验,在这里,这种方式我先不细讲。除了绕过云WAF之外,由于站点再配置过程中的问题,会存在其他类型的WAF的绕过方式。
1、旁站绕过
有时,网站管理员在配置WAF的时候会出现疏漏,针对http和https协议的80和443端口有时并没有全部进行防护,因此,在这种情况下,不妨在地址栏中,把http改为https(或者进行相反的操作),说不定会有意外收获!
2、表名单绕过
云WAF在配置过程中,有时会选择“信任”部分数据包,这部分数据包不会被云WAF进行匹配检验,在WAF里维持着一个白名单列表,凡是在符合白名单的要求,WAF就不会进行检测。因此,基于这种思路,我们就可以把我们访问的数据包伪装成白名单上的数据包,这样就可以绕过WAF的检验了。
①伪装成爬虫
有的时候,站点为了提高自己在SEO上的排名,会设置对大型搜引擎的爬虫不做检验,这个时候,只要在数据包中user-agent字段中把原始的信息替换成搜索引擎信息,就可以绕过WAF的检验了。
②伪装成自己
有些网站不会对自己(即物理机上的操作)进行检验,因此,可以在数据包中设置X-FARWARDED-FOR头,或者是X-Originating-IP,将其设置为127.0.0.1,这样就可以绕过WAF了。
3、目录伪装绕过
有时,WAF会设置不拦截针对特定目录的数据包,如admin等。有时是通过检测数据包中是否含有指定的关键字符串来判定的。这时,我们可以根据这一特性,通过…/等方式人为的构造含有这些指定目录字符串特性的数据包,从而绕过WAF的检验。360webscan脚本会对admin dede install等目录不做拦截,这样就可以构造含有这些字符串的数据包,从而进行绕过。

总之,WAF是基于规则的绕过,这样WAF在工作的时候就有天然的缺陷性,限制了WAF作用的发挥,导致像防火墙一样,总是存在着各种各样的绕过姿势。只要渗透测试者认真一点,发挥自己的脑洞,就一定能找到合适的方法进行绕过。

相关文章
|
9天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1197 4
|
8天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1125 87
|
6天前
|
机器学习/深度学习 物联网
Wan2.2再次开源数字人:Animate-14B!一键实现电影角色替换和动作驱动
今天,通义万相的视频生成模型又又又开源了!Wan2.2系列模型家族新增数字人成员Wan2.2-Animate-14B。
577 11
|
18天前
|
人工智能 运维 安全
|
8天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1694 12
|
1天前
|
资源调度
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
212 127
|
9天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
345 0
|
9天前
|
消息中间件 Java Apache
SpringBoot集成RocketMq
RocketMQ 是一款开源的分布式消息中间件,采用纯 Java 编写,支持事务消息、顺序消息、批量消息、定时消息及消息回溯等功能。其优势包括去除对 ZooKeeper 的依赖、支持异步和同步刷盘、高吞吐量及消息过滤等特性。RocketMQ 具备高可用性和高可靠性,适用于大规模分布式系统,能有效保障消息传输的一致性和顺序性。
504 2

热门文章

最新文章