关键信息 漏洞名称: Broken Function Level Authorization (BFLA) 允许通过最终状态导入工具随意修改学生记录 摘要: - 在 i-Educar 应用程序的最终状态导入工具中发现了一个 BFLA 漏洞。此漏洞允许拥有 "School" 权限的已验证用户违反预期的功能限制,修改其学校网络内任何学校的学术记录。 - 通过操纵批次导入过程,攻击者可以对成千上万的学生数据进行攻击,如变更其在学校的记录,严重破坏公开统计结果。 漏洞组件: 配置 > 工具 > 最终状态导入 问题核心: - 应用程序未在通过最终状态导入工具处理批次更新时强制执行功能层级授权(BFLA)。虽然系统在标准用户界面(UI)实现了对 "School" 级别用户对非所属学校学生数据的修改进行视觉和功能限制,但这些限制并未在处理 CSV 文件的后端服务中强制执行。 预期行为: - 拥有“School”权限的用户应仅能修改其所在学校所属的学生记录。 - 任何通过导入工具修改其他机构数据的尝试应当被识别,产生一个授权错误或跳过特定记录。 观察行为: - 已验证用户能通过导入工具,绕过 UI 层权限设置,修改市数据库中的任何学籍信息。 概念验证 (PoC): - 提供了攻击者情境与权限设置、功能限制及 UI 中UI权限违规的具体截图。 - 包含利用 BFLA 进行学生记录状态变更的 CSV 文件示例。 - 展示了通过导入工具的每一步完成绕过限制的过程。 - 验证了最终攻击成功并可以大规模破坏学籍记录的状态。 影响: - 数据完整性损坏:此漏洞能使得学生记录可以被随意修改成为任何系统可用的状态,导致严重的数据一致性问题。 - 多租户隔离失效:逻辑隔离被破坏,导致任何学校该校的普通权限用户可以修改他校学籍数据。 - 教育统计资料系统性破坏:由于“最终状态”作为官方大型数据统计的关键依据,此漏洞直接导致数据的不准确,造成法律上的问题及费用上的浪费。 - 管理混乱:一次大规模破坏攻击,需要复杂的数据库取证、人工大量审核记录,导致管理上的混乱。 参考文档: 提供了 i-Educar GitHub 仓库链接。 研究者: ViniCastro2001