SpringBlade blade-report SSRF 漏洞总结 漏洞概述 SpringBlade 报表模块 ( ) 的 接口存在严重安全缺陷。该接口允许攻击者通过构造恶意的 JDBC 连接参数( , , , ),直接调用 和 ,且未对输入进行任何校验或限制。 影响范围 受影响产品: SpringBlade 受影响组件: 模块 (UReport 集成) 受影响版本: ≤ 4.8.0 受影响接口: 危害影响 该漏洞可导致以下三种攻击场景: 1. 服务端请求伪造 (SSRF): 攻击者可强制服务器向内部或外部任意主机和端口发起 TCP 连接,用于内网探测和服务发现。 2. 任意文件读取: 在 MySQL 连接参数中设置 ,利用 MySQL 协议的 机制,可读取服务器上的任意文件(如配置文件、私钥等)。 3. 远程代码执行 (RCE): 在旧版 MySQL 连接器中,若 仍可用,攻击者可触发恶意对象的反序列化,导致服务器远程代码执行。 复现步骤 (POC) 1. 向 blade-report 服务发送以下请求(默认端口 8108): 2. 服务器尝试建立 TCP 连接。若目标端口开放,响应中会包含连接成功的信息。 修复方案 1. 立即缓解措施 禁用接口: 如果生产环境不需要数据源测试功能,建议在网关或 Web 层拦截对该接口的访问。 2. 代码级修复 白名单限制 JDBC 驱动: 替换 ,仅允许预定义的驱动类名。 清理 JDBC URL 参数: 解析 URL 并移除危险参数(如 , 等)。 限制连接目标: 验证 JDBC URL 中的主机地址,禁止连接私有地址或回环地址。 禁用 LOAD DATA LOCAL**: 在驱动层设置 作为系统默认值。