摘要: 之所以要谈到WAF的常见特征,是为了更好的了解WAF的运行机制,这样就能增加几分绕过的机会了。本文不对WAF做详细介绍,只谈及几点相关的。
之所以要谈到WAF的常见特征,是为了更好的了解WAF的运行机制,这样就能增加几分绕过的机会了。本文不对WAF做详细介绍,只谈及几点相关的。
总体来说,WAF(Web Application Firewall)的具有以下四个方面的功能:
\1. 审计设备:用来截获所有HTTP数据或者仅仅满足某些规则的会话
\2. 访问控制设备:用来控制对Web应用的访问,既包括主动安全模式也包括被动安全模式
\3. 架构/网络设计工具:当运行在反向代理模式,他们被用来分配职能,集中控制,虚拟基础结构等。
\4. WEB应用加固工具:这些功能增强被保护Web应用的安全性,它不仅能够屏蔽WEB应用固有弱点,而且能够保护WEB应用编程错误导致的安全隐患。
WAF的常见特点:
异常检测协议:拒绝不符合HTTP标准的请求
增强的输入验证:代理和服务端的验证,而不只是限于客户端验证
白名单&黑名单:白名单适用于稳定的We应用,黑名单适合处理已知问题
基于规则和基于异常的保护:基于规则更多的依赖黑名单机制,基于异常更为灵活
状态管理:重点进行会话保护
另还有:Coikies保护、抗入侵规避技术、响应监视和信息泄露保护等
如果是对于扫描器,WAF有其识别之道:
扫描器识别主要由以下几点:
1) 扫描器指纹(head字段/请求参数值),以wvs为例,会有很明显的Acunetix在内的标识
2) 单IP+ cookie某时间段内触发规则次数
3) 隐藏的链接标签等(<a>)
4) Cookie植入
5) 验证码验证,扫描器无法自动填充验证码
6) 单IP请求时间段内Webserver返回http状态404比例, 扫描器探测敏感目录基于字典,找不到文件则返回404
从目前能找到的资料来看,我把这些绕过waf的技术分为9类,包含从初级到高级技巧
a) 大小写混合
b)替换关键字
c)使用编码
d)使用注释
e)等价函数与命令
f)特殊符号
g)HTTP参数控制
h)缓冲区溢出
i)整合绕过
以魔术字符%为例,Asp/Asp.net会受到影响
缓冲区溢出用于对付WAF,有不少WAF是C语言写的,而C语言自身没有缓冲区保护机制,因此如果WAF在处理测试向量时超出了其缓冲区长度,就会引发bug从而实现绕过
举例:
示例0xA*1000指0xA后面”A”重复1000次,一般来说对应用软件构成缓冲区溢出都需要较大的测试长度,这里1000只做参考,在某些情况下可能不需要这么长也能溢出
整合的意思是结合使用前面谈到的各种绕过技术,单一的技术可能无法绕过过滤机制,但是多种技术的配合使用成功的可能性就会增加不少了。这一方面来说是总体与局部和的关系,另一方面则是多种技术的使用创造了更多的可能性,除非每一种技术单独都无法使用,否则它们能产生比自身大得多的能量。
举例:
转载于:
https://www.freebuf.com/column/210793.html