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

WAF绕过的捷径与方法

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

基于协议/中间件的安全缺陷并不全然是功能带来的,有时带业务特性的配置也会有缺漏,且这种缺漏是前端 WAF 和后端业务中间件功能差异所必然存在的,也是大多数通用 WAF 产品很难和业务适配的死角,突出的例子如:

请求包大小限制;很多后端业务存在上传功能,所以请求数据限制上往往会较大,而前置 WAF 系统,需要有较高的响应时间,请求包较大时往往超过内置的性能和耗时阈值,所以可直接发送大量无意义的参数,尾端带攻击参数便可直接绕过 WAF 系统。

3. 系统/数据库/编程语言层面

系统、数据库和编程语言层面,属于对抗 WAF 策略的正面战场,这类文章网上佳作不胜枚举,但其达成绕过的功效并不具通用性,比如系统级别的绕过可能围绕命令执行、LFI 之类的漏洞,数据库相关的绕过是围绕 Sqli 类漏洞,且两者的绕过思路大致相同,即利用系统/数据库特性或不常用函数绕过 WAF 策略特征,至于编程语言的绕过方式则相对灵活,这也是动态语言的特性决定的,本文主旨是 WAF 绕过的捷径,正面对抗策略内容便不多做赘述(正面硬刚 WAF 规则也有成熟工具,详细内容参见参考文档中 2016 blackhat 大会上的《Another Brick off The Wall: Deconstructing Web Application Firewalls Using Automata Learning》一文),每个类型各介绍一类比较有代表性的 Bypass 方法:

  • 系统层面,利用 Linux 通配符特性绕过 WAF 策略;在 bash 语法中,可以使用与系统文件相同数量的 "?", "/" 来匹配该文件;用未初始化的变量隔离特征字符;用 ' 字符拆解再拼贴,绕过字符匹配。
  • 数据库层面,利用 mysql 注释和注释特性绕过 WAF 策略;在 ModSecurity (最常见的开源 WAF 框架)默认策略中,union select 这类 Sqli 注入语法一般是贪婪匹配 union 和 select 之间的字符、数字、下划线、左括号,很容易通过插入 /* */注释绕过;当变更规则过滤掉注释,依然可以通过在注释中使用 ! 加版本号包裹关键词来绕过检测,因为只要 mysql 的当前版本等于或大于该版本号,则该注释中的 sql 语句将被 mysql 执行;
  • 编程语言层面,利用 PHP 数组特性绕过 WAF 策略;在 PHP 中每个字符串都可以当作数组,这样基于字符串的正则匹配就很容易被绕过了。

限于文章篇幅,简单描述了 WAF Bypass 测试的整体框架,相当一部分绕过方法未能展示,由于议题宽泛,时间紧迫,故仓促收尾,算理清框架脉络,避免后来者按图索骥的浪费时间。

(编辑:核心网)

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

热点阅读