SSRF via DNS Rebinding in Attachment fromImageUrl Endpoint Allows Internal Network Access 漏洞概述 漏洞类型:服务端请求伪造 (SSRF) 通过 DNS 重绑定 (DNS Rebinding) 实现。 受影响组件: 中的 方法。 漏洞原理: 1. TOCTOU 竞态条件: 查询 DNS 解析器直接获取 IP,而 请求时可能通过 读取 获取不同的 IP。攻击者利用此时间差,使验证阶段和实际请求阶段解析到不同的 IP。 2. 空结果绕过:如果 返回空结果(如 DNS 失败或不存在),函数直接返回 ,导致验证被绕过。 利用条件:需要控制一个域名,该域名在验证时解析为公网 IP,在请求时解析为内网 IP。 影响范围 受影响版本:EspoCRM < 9.3.2 受影响用户:任何具有附件创建权限的已认证用户(默认配置下)。 攻击者能力: 扫描内部网络端口并映射运行中的服务。 确认外部不可访问的内部主机存在。 与内部基于 HTTP 的服务交互,可能泄露敏感信息或作为进一步攻击的跳板。 限制:无法从二进制协议服务(如 MySQL)提取数据;无法远程代码执行。 修复方案 建议修复:在 TCP 连接建立后,验证实际使用的 IP 地址,而不是在连接前验证 DNS 解析结果。 修复代码**: POC 代码 漏洞利用请求示例 漏洞触发代码片段 (HostCheck.php) 漏洞触发代码片段 (UploadDirService.php)