破 WAF | 寻新迹象
字数 928 2025-08-30 06:50:28

帆软报表(FinеRероrt)模版注入漏洞分析与WAF绕过技术

漏洞概述

FinеRероrt是帆软自主研发的企业级Wеb报表工具,其/view/ReportServer接口存在模版注入漏洞。攻击者可以利用该漏洞执行任意SQL写入Webshell,从而获取服务器权限。

漏洞验证

  1. 访问目标站点的/view/ReportServer接口
  2. 测试模版注入点:${1+1},如果正常解析则初步判定存在漏洞

WAF拦截分析

根据实际测试,该站点的WAF有以下拦截策略:

  • ${1+1}可以正常请求
  • ${任意(1)}(即(前存在任何字段)会被拦截

绕过WAF的两种思路

思路一:流量层绕过

  1. 脏数据注入:在请求中插入大量无用数据以干扰WAF检测
  2. 请求头修改
    • 修改X-Forwarded-For (XFF)
    • 修改User-Agent (UA)
  3. 传输方式修改
    • 尝试分块传输编码
    • 修改请求方法(GET/POST切换)
  4. 编码转换:尝试不同编码方式

注:在实际测试中,脏数据注入方法未能成功

思路二:漏洞原理深入研究

  1. 截断法尝试
    • 构造类似${exp$a(1)}的payload
    • $a位置尝试各种截断字符:
      • %0a (换行)
      • %0d (回车)
      • %0d%0a (回车+换行)
      • %2f (斜杠)
      • %5c (反斜杠)
      • %0a-- (换行+SQL注释)
      • %0a# (换行+注释)
      • %0a/* (换行+多行注释开始)
      • %0a*/ (换行+多行注释结束)

注:截断法在实际测试中也未能成功

后续利用思路

  1. 组合利用:发现新的组合利用方式,配合其他漏洞进行攻击
  2. SQL注入:通过模版注入执行任意SQL语句
  3. Webshell写入:利用SQL注入能力写入Webshell获取服务器权限

防御建议

  1. 及时更新帆软报表到最新版本
  2. /view/ReportServer接口进行严格的输入过滤
  3. 实施多层WAF策略,不仅拦截特定模式,还要检测异常行为
  4. 监控服务器日志,特别是对模版解析异常的请求

参考资源

帆软报表(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 漏洞利用可能需要结合具体环境进行进一步测试和研究