WAF是如何被绕过的?

本文详细探讨了Web应用防火墙(WAF)的局限性,包括Web容器特性、Web应用层问题和WAF自身的问题。通过实例解释了如何利用数据提取缺陷、清洗错误和规则通用性问题来绕过WAF。建议在WAF基础上增加额外的安全措施,避免过分依赖WAF。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:掌控安全学员-暗箭

欢迎关注公众号:掌控安全EDU

不知不觉来到掌控学院也快两个月了,想起俩个月前,从零开始,一步一个脚印的走到现在。

虽然有时很疲惫,但是却很快乐。

在下才疏学浅,仅在这里发表一下不成熟的见解,希望对大家的提升有所帮助

首先我们要了解什么是waf:

Web应用防火墙,Web Application Firewall的简称

我们口头相谈的waf有什么功能呢?

WAF可以发现和拦截各类Web层面的攻击,记录攻击日志,实时预警提醒,在Web应 用本身存在缺陷的情况下保障其安全。

但是,WAF不是万能的、完美的、无懈可击的,在种种原因下,它们也会有 各自的缺陷,作为用户不可以盲目相信WAF而不注重自身的安全。

我们来看一下目前主流的WAF绕过技术:
作为攻击者,我们要清楚我们利用哪方面来进行绕过:

Web容器的特性
Web应用层的问题
WAF自身的问题
数据库的一些特性

Web容器特性1

在IIS+ASP的环境中,对于URL请求的参数值中的%,如果和后面的字符构成的字符串在URL编码表之外,ASP脚本 处理时会将其忽略。

在这里插入图片描述

现在假设有如下请求:

http://zkaq666.com/1.asp?id=1 union se%lect 1,2,3,4 fro%m adm%in

在WAF层,获取到的id参数值为

1 union all se%lect 1,2,3,4 fro%m adm%in

此时waf因为 % 的分隔,无法检测出关键字 select from 等

但是因为IIS的特性,id获取的实际参数就变为

 1 union all select 1,2,3,4 from admin 

从而绕过了waf。

这个特性仅在iis+asp上 http://asp.net并不存在。

Web容器特性2

在这里插入图片描述

IIS的Unicode编码字符
IIS支持Unicode编码字符的解析,但是某些WAF却不一定具备这种能力。

//已知 ‘s’ 的unicode编码为:%u0053, ‘f’ 的unicode编码为 %u0066

如下:

http://zkaq666.com/1.asp?id=1 union all %u0053elect 1,2,3,4, %u0066rom admin

但是IIS后端检测到了Unicode编码会将其自动解码,脚本引擎和数据库引擎最终获取到的参数会是: 1 union all select 1,2,3,4 from admin

这种情况需要根据不同的waf进行相应的测试,并不是百发百中。但是对于绕过来说,往往只要一个字符成功绕过 即可达到目的。

Web容器特性3

HPP(HTTP Parameter Pollution): HTTP参数污染:
如下图

在这里插入图片描述

在HTTP协议中是允许同样名称的参数出现多次的。例如:

http://zkaq666.com/1.asp?id=123&id=456 这个请求。

根据WAF的不同,一般会同时分开检查 id=123 和 id=456 ,也有的仅可能取其中一个进行检测。但是对于 IIS+ASP/http://ASP.NET来说,它最终获取到的ID参数的值是123,空格456(asp)或123,456(http://asp.net)。

所以对于这类过滤规则,攻击者可以通过:

id=union+select+password/&id=/from+admin来逃避对 select * from 的检测。因为HPP特性,id的参数值最终会变为:union select password/,/from admin

Web容器的特性 –4

畸形HTTP请求
当向Web服务器发送畸形的,非RFC2616标准的HTTP请求时, Web服务器出于兼容的目的,会尽可能解析畸形HTTP请求。而如果Web服务器的兼容方式与WAF不一致,则可能会出现绕过的情况。

下面来看这个POST请求:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值