[Security] Pre-Authentication SQL Injection in Shares filelist API 漏洞概述 FilePress 的 API 端点存在严重的 SQL 注入漏洞。 参数在构建 SQL 子句时,仅进行了简单的 trim 处理,未进行严格的白名单校验或参数化,导致攻击者可以注入任意 SQL 表达式。 结合以下绕过机制,攻击者无需认证即可执行基于时间的盲注(Time-based blind SQLi),从而提取数据库中的敏感数据(包括管理员密码哈希): 1. 未授权创建记录:允许匿名创建分享记录,强制 MySQL 执行 语句。 2. XSS 检查绕过:通过 POST 请求携带 参数,可绕过 过滤器。 3. QuerySafe 过滤绕过:利用 过滤器的黑名单缺陷,成功使用 、 、 等函数。 影响范围 受影响产品:FilePress (基于 DzzOffice/PicHome) 受影响版本:所有版本(包括最新版本) 严重程度:Critical (CVSS 9.8) 攻击向量:GET 请求,无需认证。 影响: 1. 管理员凭证泄露(用户名、密码哈希、盐值)。 2. 全库数据泄露(用户记录、配置、附件路径等)。 3. 攻击链升级:利用管理员权限登录后台,进一步实施远程代码执行(RCE)。 修复方案 1. 白名单校验 参数:严格限制 参数只能为 或 。 2. 添加认证机制: 和 接口应要求用户认证,禁止匿名访问。 POC 代码 1. 创建匿名分享记录 (Pre-condition) 2. 验证注入点 (Time-delay test) 3. 数据提取 (Data Extraction) 提取数据库版本: 提取管理员密码哈希 (Cross-table query): (注:实际利用需通过二分法逐字符提取,约需 200-300 次 HTTP 请求)*