漏洞关键信息 1. 漏洞概述 项目: CRMEB Mall System 供应商: CRMEB (https://www.crmeb.com) 项目仓库: https://github.com/crmeb/CRMEB.git 受影响文件: 受影响版本: v5.6.3及更早版本 (<= v5.6.3) 漏洞类型: CWE-287 (错误认证) CVSS v3.1 分数: 9.8 (关键) 2. 漏洞描述 问题: 苹果登录端点没有验证苹果身份令牌(JWT)的签名,盲目信任客户端发来的 参数。 后果: 允许攻击者伪造任意的 值,创建无限的虚假账户或登录到任何现有用户的账户(如果他们的苹果 已知)。 3. 漏洞分析 File: , Lines: 464-502 Summary: - Line 467: 直接从POST请求中接受 参数,没有验证。 - Line 486: 使用未验证的 生成email(可预测: )。 - Line 488: 使用未验证的 构造用户信息。 - Line 493: 使用未验证的 调用 创建/更新用户,没有验证。 - Line 495: 返回带有完全访问权限的成功响应。 4. 漏洞细节 应发生的行为: 客户端应发送 ,服务器应该: - 使用Apple公钥验证JWT签名。 - 验证发布者’ ’是 。 - 验证受众 匹配应用的bundle ID。 - 验证token未过期。 - 从 声明中提取验证后的 。 实际发生的行为: 客户端直接发送 (可以是任意字符串),服务器完全信任它,没有任何加密验证。 5. 漏洞证明(POC) POC 1: 任意账户创建。 POC 2: 批量账户注册。通过自动化批量注册演示无限账户创建的能力。 6. 影响 无限制账户创建: 攻击者可以创建无限的虚假账户。 账户接管: 如果苹果 已知,攻击者可以登录该用户。 权限提升: 具有所有用户权限,包括订单、支付和个人数据。 商业逻辑滥用: 新用户奖励、推荐奖励、优惠券利用等。 无需认证: 完全绕过苹果的身份验证。 7. 数据库证据 为空字符串(系统接受任何值)。 前12个字符可预测。 使用有效的JWT token成功创建用户。 8. 受影响文件 - 路由定义(第31行)。 - 易受攻击的控制器(第464-502行)。 - 服务层(第238-291行)。 - 用户创建逻辑(第276-384行)。 - 用户数据持久化(第124-178行)。 - 令牌生成(第93-121行)。 9. 修复方案 立即缓解: - 禁用苹果登录。 - 强制手机绑定。 永久修复: - 实现正确的苹果身份令牌验证。