关键信息 影响版本 厂商: https://github.com/easysoft/zentaopms 版本: 21.5_20250307 漏洞描述 ZenTao 编辑器组件中存在路径遍历漏洞,允许攻击者通过 PHP 包装器协议读取系统上的任意文件。漏洞存在于编辑器控制器的 方法中,由于对文件路径的不当验证,攻击者可以绕过安全检查并使用 包装器。 漏洞细节 受影响的代码尝试通过检查文件路径是否在应用程序的基本路径内来验证文件路径: 漏洞存在的原因: 1. 参数通过 进行 base64 解码。 2. 安全检查仅验证文件路径是否以应用程序的基本路径开头。 3. PHP 包装器协议(如 )可以绕过此检查,因为它们不以基本路径开头。 4. 应用程序尝试使用支持包装器协议的 读取文件内容。 利用方式 攻击者可以通过发送使用 包装器协议的 base64 编码文件路径的请求来利用此漏洞: 例如, 是 的 base64 编码形式,允许攻击者读取敏感系统文件。 此漏洞可能允许攻击者: 1. 读取敏感系统文件(如 ) 2. 访问包含凭据的应用程序配置文件 3. 获取受限制文件的源代码 4. 通过高级利用技术(如 PHAR 反序列化)潜在地实现远程代码执行 修复措施 为修复此漏洞,应实施适当的文件路径验证: 1. 禁止文件路径中的 PHP 包装器协议。 2. 实施允许的文件扩展名和目录的白名单。 3. 使用不支持包装器协议的安全文件读取方法。 4. 在处理文件路径之前实施适当的输入验证。