介绍WAF
网站存在WAF,意味着我们不能使用安全工具对网站进行测试,因为一旦触碰了WAF的规则,轻则丢弃报文,重则拉黑IP。所以,我们需要手动进行WAF的绕过,而绕过WAF前肯定需要对WAF 的工作原理有一定的理解。本文主要从绕过WAF过程中需要注意的角色和点出发,尝试理解它们的运作,构建一个简单的知识框架。
非嵌入型WAF对Web流量的解析完全是靠自身的,而嵌入型WAF拿到的Web数据是已经被解析加工好的。所以非嵌入型的受攻击机面还涉及到其他层面,而嵌入型WAF从Web容器模块型WAF、代码层WAF往下走,其对抗畸形报文、扫操作绕过的能力越来越强。当然,在部署维护成本方面,也是越高的。
WAF判断
1、sqlmap
如果网站有waf,sqlmap会提示
python sqlmap.py -u "https://www.ustc.edu.cn/" --identify-waf --batch
2、手动检测有没有WAF
直接在相应的网站的URL后面加上最基础的测试语句,比如union select 1,2,3%23,并且放入一个不存在的参数aaa
这里被拦截的表现为(增加了无影响的测试语句后):页面无法访问、响应码不同、返回与正常请求网页时不同的结果等。
http://127.0.0.1/1.php?aaa=1 union select 1,2,3%23
WAF的工作原理
WAF(Web Application Firewall) 可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。WAF针对的是应用层而非网络层的入侵,从技术角度应该称之为Web IPS。
WAF的主要难点是对入侵的检测能力,尤其是对Web服务入侵的检测,WAF最大的挑战是识别率。对于已知的攻击方式,可以谈识别率,但是对于未知的攻击手段,WAF是检测不到的。
基于规则库匹配的WAF
目前市面上大多数的WAF都是基于规则的WAF。即WAF对接数据收到的包进行正则匹配过滤,如果正则匹配到与现有漏洞知识库的攻击代码相同,则认为这个恶意代码,从而对于进行阻断。所以,对于基于规则匹配的WAF,需要每天都及时更新最新的漏洞库。
对于这种WAF,它的工作过程是这样的:解析HTTP请求——>匹配规则——>防御动作——>记录日志
具体实现如下:
解析http请求:协议解析模块
匹配规则:规则检测模块,匹配规则库
防御动作:return 403 或者跳转到自定义界面,或者不返回任何数据,或者拉黑IP
日志记录:记录到elk中
基于语义引擎分析的WAF
一般来说,规则引擎使用的正则规则的描述性比较强,对于强攻击特征的请求,正则规则的防护效果最佳。而当面对一些弱特征的攻击请求(例如XSS特征请求),即便您启用Web应用攻击防护的严格模式,依然可能因无法检测到而存在潜在的安全风险。
例如,可以通过启用Web应用防火墙的大数据深度学习引擎功能,识别并拦截Web应用攻击防护的严格规则无法识别的弱特征攻击请求。在本案例中,以下XSS攻击请求未被Web应用攻击防护规则拦截。

深度学习引擎防护案例
WAF的绕过
从WAF工作的过程我们可以看到,要想绕过WAF,我们只有在 WAF解析HTTP请求 或 WAF匹配规则 两个地方进行绕过。因为第三、四步是WAF匹配到攻击之后的操作,这时候WAF已经检测到攻击了。
以SQL注入漏洞为例
1、大小写混合:uNion sElEct 1,2,3,4,5
2、URL编码,可进行二次URL编码
3、替换关键字,ununionion seselectlect 1,2,3,4,5
4、使用注释,union /*2333*/ select /*aaaa*/1,2,3,4,5 还可使用内联注释
5、多参数请求拆分法,
6、HTTP参数污染
当同一参数出现多次,不同中间件解析成不同的结果。

HPP漏洞,与Web服务器环境、服务端使用的脚本有关。如下是不同Web服务器对于出现多个参数时的选择:
7、生僻函数
例如在报错注入中使用polygon()函数替换常用的updatexml()函数,如下所示:
SELECT polygon((select*from(select*from(select@@version)f)x));
8、寻找网站源站IP
对于云waf,只需找到网站的ip地址,然后通过ip访问网站,就可以绕过云waf的检测
常见找网站IP方法:
- 寻找网站的历史解析记录
- 多个不同区域ping网站,查看ip解析的结果
- 找网站的二级域名、NS、MX记录等对应的IP。
- 订阅网站邮件,查看邮件发送方的ip
9、注入参数到cookies中
有些程序员在代码中使用$_REQUEST获取参数,而$REQUEST会依次从/GET/POST/cookie中获取参数,如果WAF只检测了GET/POST而没有检测cookie,可以将注入放入cookie中进行绕过
参考链接:WAF的工作原理和绕过浅析
文章详细介绍了WAF的工作原理,包括基于规则库匹配和语义引擎分析的两种类型,并提供了手动判断WAF存在的方法。重点讨论了如何通过各种技巧绕过WAF的检测,如SQL注入漏洞的绕过策略,包括大小写混淆、URL编码、替换关键字等。此外,还提到了寻找网站源站IP来规避云WAF的检测以及利用cookies注入等方法。

8586

被折叠的 条评论
为什么被折叠?



