王亚丽
摘要
Web安全一直是网络安全防护领域最为关注的问题,WAF(Web应用防火墙,Web Application Firewall)作为保障Web服务器安全一道重要防线,自产生起,其应用越来越广泛,国内外对其研究也越来越多。本文对Web应用防火墙的基本原理和工作流程,以及绕过Web应用防火墙的攻击方法进行了列举和原理分析,最后总结了WAF绕过的方法与技术。
【关键词】WAF绕过技术 防火墙 过滤规则
1WAF基本原理和工作流程
Web应用防火墙通过在应用层对请求服务器的内容进行规则匹配、行为分析等识别出恶意行为,并执行相关动作,这些动作包括阻断、记录、告警等。
Web应用防火墙的基本工作流程为:数据获取→数据清洗→规则匹配→二次检验。其中规则匹配指的是Web应用防火墙对数据进行清洗之后,将清洗处理完毕的数据与Web应用防火墙中的规则进行匹配,从而对客户端请求的数据流量中的恶意攻击行为进行正确识别,进而对其进行拦截与过滤。
通过处理流程可知,Web应用防火墙可能存在缺陷的地方在请求到达WAF之前(主要针对云WAF)、在WAF自身处理数据流量环节以及WAF处理与服务器端特性导致的处理不一致环节等。
2Web应用防火墙绕过技巧
绕过WAF的本质是绕过WAF设备(主要指云WAF)或者寻找WAF设备处理应用层数据存在缺陷的特性。攻击者利用这些存在缺陷的特性构造出WAF无法处理或不做处理而对应用程序会产生危害的有效载荷,从而绕过WAF防护。
绕过Web应用防火墙的技巧主要有:
(1)请求真实IP绕过WAF:主要针对云WAF,由于其部署架构的特性,并不是直接串在目标站点线路上,而是通过DNS解析的形式部署,此时可以先探测到目标站点的真实ip,然后在hosts文件中绑定好域名的真实ip,直接请求ip以此绕过WAF的检测。
(2)检测内容范围绕过:WAF性能限制,检测特定的内容前几k或几十k的内容,然后在此特定内容段内填充无用数据,payload放于无用数据用,從而达到绕过WAF检测的目的。
(3)检测规则绕过:利用WAF开发人员规则编写经验不足、规则覆盖面不全等问题,来绕过WAF检测,例如利用MySQL对一些特殊字符处理的特性、语法特性绕过。
3Web服务器层绕过
利用WAF和Web服务器处理输入不同时来进行绕过,也就是利用Web服务器的特性,WAF的解析与服务器端环境对于输入的解析存在差异从而可能导致出现WAF防护缺陷。
3.1IIS服务器特性
由前面可以看到IIS上部署的编程语言一般为ASP和ASPX,通过合理利用其特性,则可能达到绕过效果。如在ASP+IIS的环境下特殊字符“%”存在处理特性。当在ASP+IIS环境下输入“f%rom”的时候,在经过WAF时解析处理完毕后的结果可能是,而在到达服务器端ASP+IIS环境下的时候,解析处理完毕的结果就为“from”,从而绕过了WAF对于“from”的拦截。
3.2Apache服务器
3.2.1畸形请求方法
在一些版本的Apache服务器上进行请求的时候,服务器端对客户端的HTTP请求方法METHOD处理不当,当METHOD非设定的请求方式时会默认设置为GET请求。如果WAF进行请求处理的时候按照特定的请求方式(比如GET、POST等)来处理数据,就会因为之前不当的处理请求方式而对WAF进行绕过。
3.2.2畸形的boundary
在PHP+Apache的环境下,PHP解析multipartdata有其固有的处理特性,对于Content-Type中的boundary的识别,它只截取了逗号前面的内容。比如客户端设置的boundary为“----------698241790,test”,PHP在进行解析处理的时候只识别“----------698241790”,对于后面的内容都没有识别出来。但是在WAF进行解析处理的时候获取到的就很可能是整个字符串,从而对WAF进行绕过。
4缓冲区溢出绕过
缓冲区溢出绕过Web应用防火墙的方法,主要用于用C语言编写的Web应用防火墙,考虑到C语言没有缓冲区保护机制,若是通过客户端向服务器端请求的测试向量超过缓冲区长度时,WAF就无法对其进行处理,从而出现bug进而对Web应用防火墙成功实现绕过。比如客户端请求URL为“http://www.waftest.com/sqltest.php?id=land(select1)=(select 0xB*50000)union select1,2,user()”时,服务器端接收的数据经过WAF时,WAF无法对其进行处理,就直接将数据传给了服务器,从而造成SQL注入。
5结束语
针对Web应用使用广泛、恶意攻击泛滥的现状,恶意攻击者利用SQL注入、XSS攻击、命令执行等漏洞来攻击Web应用程序,获取网站数据或致使网站瘫痪,更有甚者通过获取网站服务器权限后对内网进行渗透,严重损害了企业、机构网站安全。为了应对各类攻击,本文对Web应用防火墙的基本原理和工作流程,以及绕过Web应用防火墙的攻击方法进行了列举和原理分析。
针对己做的工作,下一阶段将重点放在构建基于回溯分析的Web应用防火墙绕过测试框架,从而提高过滤规则收集完整性、优化各类特性组合方式、加强实验验证。
参考文献
[1]Koved L,LuoL.Interactive management of Web application firewall rules:U.S.Patent 9,473,457[P].2016-10-18.
[2]Ji P,Luo L,Sreedhar VC,et al. Hierarchical rule development and binding for Web application server firewall:U.S.Patent 9,237,130[P].2016-1-12.
[3]辛晓杰,辛阳,姬硕.基于特征匹配的Web应用防火墙的研究与设计[J].信息网络安全,2015(11):53-59.endprint