什么是WAF?
WAF 设备:绿盟 / 深信服 / 启明星辰 / 360 / 阿里云 WAF / 安全狗等
WAF 通过一组通常称为策略的规则运行。这些策略旨在通过过滤掉恶意流量来防止应用程序中的漏洞。WAF 的价值部分来自于实施策略修改的速度和便利性,从而可以更快地响应不同的攻击向量;在 DDoS 攻击期间,可以通过修改 WAF 策略快速实现限速。
** 三种 WAF ** 实现基于网络的 WAF 通常是基于硬件的。
1、由于它们是在本地安装的,因此可以最大限度地减少延迟,但基于网络的 WAF 是最昂贵的选择,并且还需要存储和维护物理设备。
代表产品有:Imperva、天清 WAG 等。
2、基于主机的 WAF 可以完全集成到应用程序的软件中。
此解决方案比基于网络的 WAF 更便宜,并且提供更多的可定制性。基于主机的 WAF 的缺点是消耗本地服务器资源、实施复杂性和维护成本,这些组件通常需要占用大量资源和时间。
代表产品:安全狗,云锁,D 盾等。
3、基于云的 WAF 是一种云防火墙。
他们通常提供交钥匙安装,就像更改 DNS 以重定向流量一样简单。基于云的 WAF 还具有最低的前期成本,因为用户每月或每年为安全即服务付费。基于云的 WAF 还可以提供持续更新的解决方案,以抵御最新的威胁,而无需在用户端进行任何额外的工作或成本。基于云的 WAF 的缺点是用户将责任移交给第三方,因此 WAF 的某些功能对用户来说可能是一个黑匣子。
代表产品有:阿里云云盾,腾讯云 WAF 等。
WAF 的工作原理?
WAF 的处理流程大致可分为四部分:预处理、规则检测、处理模块、日志记录
预处理
预处理阶段首先在接收到数据请求流量时会先判断是否为 HTTP/HTTPS 请求,之后会查看此 URL 请求是否在白名单之内,如果该 URL 请求在白名单列表里,直接交给后端 Web 服务器进行响应处理,对于不在白名单之内的对数据包解析后进入到规则检测部分。
规则检测
每一种 WAF 产品都有自己独特的检测规则体系,解析后的数据包会进入到检测体系中进行规则匹配,检查该数据请求是否符合规则,识别出恶意攻击行为。
处理模块
针对不同的检测结果,处理模块会做出不同的安全防御动作,如果符合规则则交给后端 Web 服务器进行响应处理,对于不符合规则的请求会执行相关的阻断、记录、告警处理。不同的 WAF 产品会自定义不同的拦截警告页面,在日常渗透中我们也可以根据不同的拦截页面来辨别出网站使用了哪款 WAF 产品,从而有目的性的进行 WAF 绕过。
日志记录
WAF 在处理的过程中也会将拦截处理的日志记录下来,方便用户在后续中可以进行日志查看分析。
1、字母大小写混合绕过
原因:服务器端检测时未开启大小写不敏感
形式:UnIon SeLecT
2、多重关键字
原因:服务器端检测到敏感字符时替换为空
形式:ununionion selselectect
3、注释
原因:服务器端未检测或检测不严注释内的字符串
形式:/**/
,
/*!*/
,
/*!12345*/
,
#
,
-- -
等
4、编码绕过
原因:服务器端未检测或检测不严具有编码形式的关键字
类型:十六进制编码、URL 编码、Unicode 编码
形式:0x61646d696e
、
%20
、
%u0020
5、等价函数或命令
原因:服务器端黑名单不完整,过滤不严
形式:
Mysql 查询:Union distinct
、
updatexml
、
Extractvalue
、
floor
字符串截取函数:mid
、
substr
、
substring
、
left
、
reverse
字符串连接函数:concat
、
group_concat
、
concat_ws
字符串转换:char
、
hex
、
unhex
替换逗号:limit 1 offset 0
,
mid(version() from 1 for 1)
替换等号:like
6、组合绕过
原因:服务器端检测多处位置,需要多重绕过方式组合使用
形式:id = 1’
and/**/’1’like’2’/**//*!12345union*/select 1,2,3
7、特殊字符
原因:数据库中效果相同,服务器端却没有限制
形式:
科学记数法 and 1e0 = 1e0
空白字符 %0a %a0 %0b %20 %09
反单引号 table_name
括号 select * from (test.admin)
黑名单和白名单WAF有什么区别?
基于黑名单(负安全模型)运行的WAF可以防御已知攻击。可以将WAF列入黑名单,这是俱乐部的保镖要求您拒绝不符合着装要求的客人入场。相反,基于白名单(肯定安全模型)的WAF仅允许已预先批准的流量。这就像保镖在独家派对上一样,他/她只接受名单上的人。黑名单和白名单都有其优点和缺点,这就是为什么许多WAF提供混合安全模型的原因,该模型同时实现了两者。