漏洞关键信息 1. 漏洞类型 Server-Side Request Forgery (SSRF) 2. 受影响环境 项目: Dinky 仓库: https://github.com/DataLinkDC/dinky 受影响版本: 1.2.5 3. 漏洞详情 描述: - FlinkProxyController 类提供代理 API,用于转发请求到 Apache Flink 集群。proxyUba() 方法从请求 URI 提取路径,删除 前缀,并直接使用用户控制的值创建和执行 HTTP 请求,没有验证或白名单。 - 攻击者可以提供绝对 URL (如: ) 而不是相对路径,导致 Dinky 服务器对内部或外部资源发出任意 HTTP 请求。响应返回给攻击者,这是一种非盲 SSRF 漏洞,允许全面的侦查和数据泄露。 4. 技术细节 易受攻击的文件: 易受攻击的函数: (行 50-71) 攻击向量: 网络 (AV:N) - 需要经过验证的网络访问 用户控制的输入点: 请求 URI 路径参数 未净化的数据传播: - 从请求 URI 提取的用户控制路径 - 追加查询字符串 - 直接传给 HTTP 请求创建 危险的执行函数: (行 68) 5. 影响分析 保密性: 高 - 攻击者可以访问敏感的内部资源,包括云元数据服务、内部数据库和缓存等。 完整性: 无 - 该漏洞不会直接影响数据或配置的修改。 可用性: 无 - 该漏洞不会直接影响系统的可用性。 CVSS v3.1: 6.5 (中等) - 向量字符串: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N 6. 漏洞证明 (PoC) 复现步骤: - 服务器需要具有内部服务的网络访问权限和有效用户身份验证。 - 攻击场景包括云元数据凭证窃取、内部服务枚举、私有网络扫描以及内部数据库访问。 7. 分类与缓解措施 漏洞分类: - CWE-ID: CWE-918 (服务器端请求伪造) - 次要 CWE: CWE-601 (将不受信任站点的 URL 重定向) 推荐的缓解措施: 1. 实施 URL 白名单 (主要修复): - 限制代理目标到预配置的、可信的 Flink 集群端点。 2. 添加网络级控制: - 配置 Dinky 服务器的防火墙规则,阻止访问某些 IP 范围和私有网络地址。 3. 加强授权: - 通过基于角色的访问控制限制代理访问,并审计所有代理使用。 4. 实现监控和告警: - 记录所有代理请求,并对特定请求类型进行告警。