漏洞概述 该漏洞涉及对 端点的未授权 NoSQL 注入攻击。攻击者可以通过此漏洞访问任意 MongoDB 集合,导致敏感数据泄露,包括管理员密码哈希。 影响范围 任意集合访问:攻击者可以通过请求参数指定任意 MongoDB 集合。 敏感字段暴露:通过投影操作,攻击者可以暴露敏感字段。 正则过滤器数据提取:攻击者可以利用正则过滤器提取数据。 分页限制绕过:攻击者可以绕过分页限制,获取大量数据。 修复方案 1. 限制 到 CVE 数据集 - 拒绝非 CVE 值在 参数中,确保端点仅操作 CVE 集合。 - 防止通过请求输入进行任意集合遍历。 - 对无效目标返回 HTTP 400。 2. 验证 DataTables 列投影和排序 - 引入基于白名单的 DataTables 列字段验证,确保仅预期的 CVE 模式字段可查询。 - 防止攻击者控制的字段影响 MongoDB 投影或排序操作。 - 无效或意外的列定义引发 ,在 API 层处理为 HTTP 400。 3. 强制分页边界 - 验证 和 参数以防止无界查询。 - 拒绝负偏移和过大页面大小。 - 最大页面大小从配置( )派生,使用安全的 UI 对齐基线(100)。 - 无效值引发 ,在 API 层处理为 HTTP 400。 验证 POC 代码 未授权集合访问 ( ) 预期结果:400 Bad Request & 列注入 ( 字段) 预期结果:400 Bad Request & 分页溢出 ( ) 预期结果:400 Bad Request & 负分页 ( ) 预期结果:400 Bad Request & 有效 CVE 请求(控制) 预期结果:200 OK, JSON with 10 CVEs.