关键信息 漏洞概述 漏洞类型: XXE (XML External Entity) 影响版本: 0.2.0 修复版本: 0.3.0 CVE编号: CVE-2021-48617 CVSS评分: 6.7/10 影响 描述: 当处理MathML格式的XML文件时, 函数与未设置 标志的 类一起使用,导致外部实体被加载,可能读取本地服务器文件。 严重性: 高 利用条件 易受攻击组件: 函数 利用前提: 只有在不使用 标志读取MathML格式时才适用。 缓解措施 如果无法禁用 标志,建议通过实现自定义外部实体加载器函数来过滤外部实体以防止XXE。 研究细节 研究者: Aleksandr Zhuravkov (Positive Technologies) 测试环境: PHP版本 >= 8.1, 使用composer安装最新版本的Math库,PHP配置为支持Zip,安装必要的依赖项和 工具。 步骤: 1. 准备环境 2. 创建 目录并进入 3. 安装最新版本的库 4. 创建payload.xml文件 5. 创建math.php文件 6. 设置监听socket 7. 通过console执行php脚本 8. 解码接收到的数据 图片说明 Figure 1: 安装库的过程 Figure 2: 启动监听socket Figure 3: 字符串外泄 Figure 4: 数据解码 致谢 Aleksandr Zhuravkov (Positive Technologies)