摘要: 之所以要谈到WAF的常见特征,是为了更好的了解WAF的运行机制,这样就能增加几分绕过的机会了。本文不对WAF做详细介绍,只谈及几点相关的。

0×1 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


0×2 绕过WAF的方法

从目前能找到的资料来看,我把这些绕过waf的技术分为9类,包含从初级到高级技巧

a) 大小写混合

b)替换关键字

c)使用编码

d)使用注释

e)等价函数与命令

f)特殊符号

g)HTTP参数控制

h)缓冲区溢出

i)整合绕过


a) 大小写绕过

image.png


b)替换关键字

image.png


c)使用编码

image.png


d) 使用注释

image.png


e)等价函数与命令

image.png

image.png


f) 特殊符号

image.png

image.png


g) HTTP参数控制

image.png

007bHQE8gy1g59jnexmbbj30fc04ymzh.jpg




image.png

007bHQE8gy1g59jo0bxzbj30cc04lgm7.jpg

以魔术字符%为例,Asp/Asp.net会受到影响

007bHQE8gy1g59joe6rfqj30dt03haag.jpg

h) 缓冲区溢出(Advanced)

缓冲区溢出用于对付WAF,有不少WAF是C语言写的,而C语言自身没有缓冲区保护机制,因此如果WAF在处理测试向量时超出了其缓冲区长度,就会引发bug从而实现绕过

举例:

image.png

示例0xA*1000指0xA后面”A”重复1000次,一般来说对应用软件构成缓冲区溢出都需要较大的测试长度,这里1000只做参考,在某些情况下可能不需要这么长也能溢出


i) 整合绕过

整合的意思是结合使用前面谈到的各种绕过技术,单一的技术可能无法绕过过滤机制,但是多种技术的配合使用成功的可能性就会增加不少了。这一方面来说是总体与局部和的关系,另一方面则是多种技术的使用创造了更多的可能性,除非每一种技术单独都无法使用,否则它们能产生比自身大得多的能量。

举例:

image.png

转载于:

https://www.freebuf.com/column/210793.html

上一篇:Web弱口令通用检测方法探究
下一篇:Carbon:交互式反汇编工...