关键信息 漏洞描述 类型: 存储型XSS漏洞 受影响产品: Metinfo CMS 8.0 组件: 网站设置模块中的SVG上传功能 原因: SVG文件内容未进行充分验证和清理,导致恶意SVG代码被存储并执行。 技术细节 部署环境: PHP7.4, MySQL5.7, Apache2.4 源码地址: http://www.redfoo.cn/download/8.0.zip 攻击路径: 通过网站设置模块的SVG上传功能上传恶意SVG文件,当管理员查看或编辑这些设置时触发XSS攻击。 证明概念 (PoC) 示例SVG代码: 结果: 当管理员点击“保存”按钮后,恶意SVG文件被永久存储在系统中,并在访问设置页面时触发XSS攻击。 漏洞代码分析 问题点: 文件中对SVG文件内容的验证和清理不足。 具体问题: - 未正确验证SVG文件内容 - 未过滤潜在的恶意元素和属性 - 未实现安全的XML解析 - 未转换SVG文件为安全图像格式 影响 风险: 攻击者可利用此漏洞获取管理员权限,篡改网站内容,窃取敏感信息,执行任意操作等。 修复建议 1. 增强SVG文件内容的验证和清理。 2. 过滤潜在的恶意元素和属性。 3. 考虑将SVG文件转换为安全图像格式(如PNG、JPEG)。 4. 实现严格的类型检查以防止绕过验证。 时间线 2023-08-22: 漏洞发现 2023-08-23: 文档创建和PoC生成 [Future Date]: 漏洞修复和确认