防火墙WAF拦截应对策略
总述
当网站接入Web应用防火墙(Web Application Firewall,简称WAF)后,如果出现访问异常问题,可以通过以下步骤进行排查和修复,本文将详细介绍如何绕过WAF的拦截,并提供多种实用的方法和工具。
检查是否为源站问题
首先需要确认问题是否由源站服务器引起,以下是具体步骤:
1、禁用源站安全组和其他防护:通过旁路Web应用防火墙,判断是否为源站服务器的响应问题,禁用源站上的安全组、黑白名单、防火墙、其他云安全产品等应用,防止WAF回源IP被拉入黑名单。
2、修改本地计算机的hosts文件:将问题域名的解析指向对应的ECS实例、SLB实例、服务器公网IP(即在WAF上填写的源站IP地址)。
3、访问测试:通过本地计算机的浏览器访问问题域名,查看访问请求不经过Web应用防火墙时,是否能复现问题。
4、检查源站状态:如果问题复现,说明可能是源站服务器的响应异常,建议及时检查源站服务器的工作状态(例如进程、CPU、内存、Web日志等)是否有异常并修复异常。
检查是否为WAF误拦截
如果确定不是源站问题,则需要进一步检查是否是WAF误拦截,以下是具体步骤:
1、关闭正则防护引擎:为域名关闭正则防护引擎,查看问题是否仍然存在,如果问题消失,建议将正则防护引擎的防护规则组设置为宽松规则组(默认为中等规则组),或者通过日志服务分析有问题的URL,并添加一条自定义防护策略,放行访问该URL的请求。
2、关闭CC安全防护:为域名关闭CC安全防护,查看问题是否仍然存在,如果问题消失,建议将CC安全防护的模式设置为防护(如果本来就是防护模式,可忽略),或者通过日志服务分析有问题的URL,并添加一条自定义防护策略,放行访问该URL的请求。
绕过WAF的方法
基于文件名称的绕过
%00截断
原理:%00截断是一种在文件上传或URL处理过程中常见的安全绕过技术,它利用了某些编程语言或系统在处理字符串时的一个特性:即当遇到空字符(null character,ASCII码为0,即