设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 运营中心 > 建站资源 > 策划 > 正文

WAF绕过的捷径与方法(3)

发布时间:2019-02-20 06:18 所属栏目:20 来源:qiaoy
导读:基于协议/中间件的安全缺陷并不全然是功能带来的,有时带业务特性的配置也会有缺漏,且这种缺漏是前端 WAF 和后端业务中间件功能差异所必然存在的,也是大多数通用 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 测试的整体框架,相当一部分绕过方法未能展示,由于议题宽泛,时间紧迫,故仓促收尾,算理清框架脉络,避免后来者按图索骥的浪费时间。

参考文档

  • Abuse-ssl-bypass-waf:https://github.com/LandGrey/abuse-ssl-bypass-waf
  • Bypassing Web-Application Firewalls by abusing SSL/TLS:https://0x09al.github.io/waf/bypass/ssl/2018/07/02/web-application-firewall-bypass.html
  • WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour:https://www.slideshare.net/SoroushDalili/waf-bypass-techniques-using-http-standard-and-web-servers-behaviour

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读