漏洞关键信息 漏洞概述 提交人: Ana10gy 项目: PublicCMS [https://github.com/sanluran/PublicCMS] 供应商: publiccms 受影响版本: PublicCMS 删除其他用户的地址 -> 数据丢失/服务中断 漏洞细节 根因 漏洞的根本原因是删除操作中缺少所有权验证。控制器假设如果用户已认证,则他们有权删除他们提供的任何地址ID。 攻击向量 认证攻击者可以: 1. 通过顺序猜测或观察来枚举地址ID。 2. 发送带有属于其他用户的地址ID的删除请求。 3. 系统处理删除操作,但不进行所有权验证。 4. 受害者失去他们的保存的送货地址。 代码细节 感染点 - 删除端点 文件: 相关代码: 数据层 - 服务实现 文件: 相关代码: 实体定义 文件: 相关代码: 概念验证 步骤 1: 攻击者枚举 步骤 2: 易受攻击的处理 步骤 3: 结果 步骤 4: 对受害者的攻击 攻击场景 场景 A: 针对性骚扰 场景 B: 批量拒绝服务 场景 C: 竞争性破坏 影响评估 修复建议 1. 在控制器中添加所有权验证。 2. 在服务层添加所有权检查。 3. 使用安全的基服务模式。 4. 添加面向切面编程(AOP)验证。 5. 添加全面的日志记录。