[Security] Pre-Authentication SQL Injection in Shares filelist API #70 漏洞概述 在 FilePress 的 模块 API 端点中存在一个严重的 SQL 注入漏洞。 参数被直接拼接到 SQL 子句中,且未进行任何白名单验证或参数化处理。攻击者可以利用此漏洞执行任意 SQL 查询。 结合应用内置安全机制的多个绕过方法(如 XSS 检查绕过、QuerySafe 过滤器绕过),攻击者可以执行基于时间的盲注(Time-based Blind SQL Injection),从而提取数据库中的任意数据,包括管理员凭据(用户名、密码哈希和盐)。 漏洞详情: 漏洞类型: SQL 注入 (CWE-89) 严重性: 严重 (CVSS 9.8) 认证要求: 无需认证 (Pre-Auth) 攻击向量: 受影响版本: 所有版本,包括最新版本 注入点: (Lines 278-281) 影响范围 1. 管理员凭据窃取: 从 表中提取管理员用户名、密码哈希和盐。 2. 数据库完全泄露: 跨表提取任何数据(用户记录、配置、附件路径等)。 3. 攻击链升级: 管理员凭据可用于登录后端面板,从而启用进一步的利用(例如,通过插件安装实现远程代码执行)。 修复方案 1. 白名单验证 参数(最高优先级): 在 和 中,对 参数进行严格的白名单验证。 2. 为 API 添加认证: 该端点应要求用户认证,并且仅返回属于认证用户的共享数据。 3. 为 添加认证: 创建共享记录的 路径应拒绝未经认证的用户( )。 POC 代码 1. 创建共享记录 (无需认证): 2. 验证注入点 (时间延迟测试): 3. 数据提取示例: 提取数据库版本第一个字符: 提取管理员密码哈希 (跨表查询): [Security] Pre-Authentication SQL Injection in Shares filelist API #70 漏洞概述 在 FilePress 的 模块 API 端点中存在一个严重的 SQL 注入漏洞。 参数被直接拼接到 SQL 子句中,且未进行任何白名单验证或参数化处理。攻击者可以利用此漏洞执行任意 SQL 查询。 结合应用内置安全机制的多个绕过方法(如 XSS 检查绕过、QuerySafe 过滤器绕过),攻击者可以执行基于时间的盲注(Time-based Blind SQL Injection),从而提取数据库中的任意数据,包括管理员凭据(用户名、密码哈希和盐)。 漏洞详情: 漏洞类型: SQL 注入 (CWE-89) 严重性: 严重 (CVSS 9.8) 认证要求: 无需认证 (Pre-Auth) 攻击向量: 受影响版本: 所有版本,包括最新版本 注入点: (Lines 278-281) 影响范围 1. 管理员凭据窃取: 从 表中提取管理员用户名、密码哈希和盐。 2. 数据库完全泄露: 跨表提取任何数据(用户记录、配置、附件路径等)。 3. 攻击链升级: 管理员凭据可用于登录后端面板,从而启用进一步的利用(例如,通过插件安装实现远程代码执行)。 修复方案 1. 白名单验证 参数(最高优先级): 在 和 中,对 参数进行严格的白名单验证。 2. 为 API 添加认证: 该端点应要求用户认证,并且仅返回属于认证用户的共享数据。 3. 为 添加认证: 创建共享记录的 路径应拒绝未经认证的用户( )。 POC 代码 1. 创建共享记录 (无需认证): 2. 验证注入点 (时间延迟测试): 3. 数据提取示例: 提取数据库版本第一个字符: 提取管理员密码哈希 (跨表查询): ```sql ORDER BY dateline ASC,(SELECT 1 FROM (SELECT IF(ASCII(MID((SELECT password FROM dzz_user WHERE uid=0 LIMIT 1),1,1))>51,SLEEP(3),...)))