破 WAF | 寻新迹象
字数 928 2025-08-30 06:50:28
帆软报表(FinеRероrt)模版注入漏洞分析与WAF绕过技术
漏洞概述
FinеRероrt是帆软自主研发的企业级Wеb报表工具,其/view/ReportServer接口存在模版注入漏洞。攻击者可以利用该漏洞执行任意SQL写入Webshell,从而获取服务器权限。
漏洞验证
- 访问目标站点的
/view/ReportServer接口 - 测试模版注入点:
${1+1},如果正常解析则初步判定存在漏洞
WAF拦截分析
根据实际测试,该站点的WAF有以下拦截策略:
${1+1}可以正常请求${任意(1)}(即(前存在任何字段)会被拦截
绕过WAF的两种思路
思路一:流量层绕过
- 脏数据注入:在请求中插入大量无用数据以干扰WAF检测
- 请求头修改:
- 修改X-Forwarded-For (XFF)
- 修改User-Agent (UA)
- 传输方式修改:
- 尝试分块传输编码
- 修改请求方法(GET/POST切换)
- 编码转换:尝试不同编码方式
注:在实际测试中,脏数据注入方法未能成功
思路二:漏洞原理深入研究
- 截断法尝试:
- 构造类似
${exp$a(1)}的payload - 在
$a位置尝试各种截断字符:%0a(换行)%0d(回车)%0d%0a(回车+换行)%2f(斜杠)%5c(反斜杠)%0a--(换行+SQL注释)%0a#(换行+注释)%0a/*(换行+多行注释开始)%0a*/(换行+多行注释结束)
- 构造类似
注:截断法在实际测试中也未能成功
后续利用思路
- 组合利用:发现新的组合利用方式,配合其他漏洞进行攻击
- SQL注入:通过模版注入执行任意SQL语句
- Webshell写入:利用SQL注入能力写入Webshell获取服务器权限
防御建议
- 及时更新帆软报表到最新版本
- 对
/view/ReportServer接口进行严格的输入过滤 - 实施多层WAF策略,不仅拦截特定模式,还要检测异常行为
- 监控服务器日志,特别是对模版解析异常的请求
参考资源
- 原始分析文章:https://xz.aliyun.com/news/14625
- 漏洞利用可能需要结合具体环境进行进一步测试和研究