漏洞总结:ApostropheCMS 绕过 漏洞概述 在 模块中, 方法存在逻辑缺陷。当未认证用户查询 piece-type REST API 时,如果请求中包含了 查询参数,代码会检查 是否已设置。如果已设置,则直接跳过应用管理员配置的 (用于限制公开访问的字段)。这导致未认证攻击者可以通过构造特定的 参数,绕过安全限制,读取被管理员明确限制公开的敏感字段。 影响范围 受影响版本: 影响模块:所有配置了 的 piece-type 模块。 严重程度:CVSS v3 基础评分 5.3/10 (Moderate)。 攻击者要求:无需认证 (Unauthenticated)。 后果:信息泄露。攻击者可以读取文档中所有字段,包括内部笔记、草稿内容、元数据等管理员意图隐藏的信息。 修复方案 移除 中 方法里对 的条件检查。确保无论用户是否提供 参数,管理员配置的 都应无条件覆盖用户提供的投影,以强制执行安全限制。 POC 代码 前置条件配置示例 ( ): 利用步骤 1:正常请求(受限字段隐藏) 响应仅返回 和 字段。 利用步骤 2:通过提供 查询参数绕过投影 响应现在包含 、 、 等任何请求的字段,绕过了管理员配置的 限制。 利用步骤 3:请求所有默认字段,投影包含敏感字段 所有请求的字段都被返回,确认 被完全绕过。 推荐修复代码 ( ): 修复前 (Vulnerable): 修复后 (Fixed):