加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

WAF绕过的捷径与方法

发布时间:2019-02-20 06:39:24 所属栏目:建站 来源:qiaoy
导读:在企业架构中,安全体系同剥洋葱一般,由外及内是由一层层的安全产品和规范构成,越处于外层承重越大,WAF 属七层防护的第一道墙,随着互联网技术发展,业务对外提供服务的方式逐渐收拢,Web 接口与应用垄断流量,WAF成了安全战场中被炮火攻击最惨烈的前线

WAF 产品架构多样,除了串联和旁路外,基于业务特性还有各种各样的组合方式,之前所在公司基于业务架构单一的特点(系统、语言、中间件、数据库版本等相关信息全局一致),只需要关注固定版本的系统/应用漏洞情报,便可采用平日旁挂,漏洞爆发打开串联开关,漏洞批量修复后恢复旁挂的方式,在安全、效率、成本的博弈中发挥一点能动性。

2. 协议/中间件层面

HTTP 协议是一个渐进工程。

处于尚未完结的渐进工程中,强制的向下兼容,加之各类中间件对协议的解读和实现花样百出,导致整个协议骨干健壮清晰,细枝末节处却错综繁杂,越是复杂有异议的地方,越是存在安全隐患。

如《Web 之困》书中所描述,协议版本的升级,大多数精力都投入到了新花样和动人功能的开发上,缺陷的修补向来是不受人待见的,而协议侧的缺陷却往往是致命的。

DEFCON 24 会议上,regilero 有一篇名为《Hiding Wookiees In Http》的演讲,详细分析了 HTTP 协议中 Keepalives 和 Pipelines 组合使用上的缺漏,可导致会话注入和缓存投毒,在 WAF 绕过上也提供了一条路径。

Keepalives 虽然在 HTTP1.0 版本便可以使用,但并没有得到官方的确认,是浏览器爆炸发展阶段的民间战胜官方的胜利,HTTP1.1 版本后才开始作为默认参数参与到请求中,这条参数也属于新版本令人心动的崭新功能,引入的原因也是为了解决请求量级斗升,新建立连接带来的系统和网络损耗,功能大致如下所示:

(1) HTTP Pipeline:

(2) HTTP KeepAlive:

(3) HTTP 1.0:

功能设计本身的意图是多请求单连接,但‘多请求’这个场景又有多般演绎,比如下图这种请求,在 WAF 端的识别上,这属于一个请求,逻辑也是通过拆解 Key、value 的模式以 Body 内容读取第二个请求的内容,当然是属于异常的 Key-Value 结构,这样第二个包的内容便很容易绕过 WAF 策略直接进行攻击了。

(4) Keeplive 绕过:

关于 HTTP 协议特性的安全缺陷,还有一个值得说道的漏洞,2011 年 BlackHat 大会有一篇名为《Checkmate with Denial of Service》的演讲,阐述了一系列 DOS 漏洞,其中有部分是关于 HTTP 慢速攻击的分析,此后漫长的一段时间中,slowloris 都是诸多大型 DDOS 事件中的主角,关于慢速 DOS 的原理其实就是利用了 HTTP 的特性,通过 Keepalives 特性,发起大量请求,修改 Content-Length,Hold 住会话,在超时前定期发送小包,保持存活状态,使服务端线程数打满,又不得释放,服务便处于不可用状态,这种攻击在前文所述的针对中间件的 DOS 中不失为一种有效的攻击绕过方式。

除了协议特性以外,异变的 HTTP header 也有可能提供绕过 WAF 的捷径,2018 年的 AppSec 大会上,有一篇《hacker WAF bypass techniques》的演讲,通过以下几个方式进行 WAF 绕过:

  • 字符集编码;Content-Type 头中使用 charset 定义字符集的应用场景不只有在 responses 中,request 中同样可以使用,而变换字符编码集以后,基于规则引擎的 WAF 则彻底失控。
  • 内容类型格式;在特定中间件版本下 Key-value 可以通过文件上传的类型 multipart/form-data 进行提交,而 WAF 针对此类型侧检测一般是只针对上传漏洞,导致常规的 xss、sqli 便可以通过该方式进行 bypass,即使存在各通用类型的漏洞检测,也可通过 Fuzz 异变上传类型的格式,达到 WAF 无法识别,后端中间件可以解析的目的:

当然以上 Bypass 的路径并非通用的,很大情况与不同中间件对 HTTP 的理解和运用有关,详细中间件系统和版本测试情况可参见表格:

https://drive.google.com/file/d/0B5Tqp73kQStQU1diV1Y0dzd1QU0/view

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读