一、简介
雷池Web应用防火墙是一款免费的WAF,它具备简单易用、强大可靠的特点。该系统基于业界领先的语义引擎检测技术,并以反向代理接入方式提供服务。长亭科技耗时近十年打造了这一产品,核心检测能力依托智能语义分析算法驱动。雷池的安装配置非常简单,同时提供卓越的防护效果。因此,越来越多的网站选择接入雷池,尤其受益于其社区版的免费优势。
二、环境
环境安装和配置部分可参考jsp篇。
最新版+高防护:
Web环境:PHP/5.4.16,直接通过PHP代码启动的临时Web环境,不同版本之间可能会存在测试结果不一致的情况。
测试时间:2023/11/26
三、测试
绕过
先正常上传php文件看看防护是否生效,可以看到设置的防护已生效,被拦截了。
在PHP文件上传的绕过中,也可以通过修改Content-Type请求头和Content-Disposition描述行来尝试绕过,我这里主要通过Content-Disposition描述行来绕过。
利用文件上传格式解析特性,可以在Content-Disposition中添加特殊字符来绕过,例如字段之间可以添加分号,filename后可以添加大量等号,字段名称重复等。
PHP解析特性,提交多个上传请求时,利用waf和php解析不一致绕过。
PHP上传时,filename=后可以添加空格,当waf严格解析filename=""时则可以绕过。
命令执行
直接执行命令肯定是被拦截的。
同jsp那一篇的思路(雷池目前只支持Linux,而Linux可以执行命令的方式太多导致了绕过),加入一些不影响解析的字符即可绕过。
读取敏感文件也是类似的思路。
补充
PHP在解析时,会对key和value进行url解码。
PHP会自动忽略参数名和参数值当中的空格。
PHP解析参数名和参数值时,遇到%00会忽略后续的值。
四、总结
本次测试时间比较匆忙,如有错误,请师傅们斧正。整体测试结果显示,雷池WAF相较传统的WAF更为强大,并且通过语义分析变得更智能化,增加了绕过的难度。在综合本次整体测试的观察中,主要利用了一些特性(例如语言、中间件、系统等)来绕过WAF的解析,从而使恶意文件、内容和命令得以逃逸。然而,文章中所提及的思路只是这些特性中的一小部分,其他的思路留给师傅们自行挖掘。
原文始发于微信公众号(伞神安全):雷池WAF最新版文件上传绕过-php篇
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论