关键漏洞信息 漏洞名称 Broken Function Level Authorization (BFLA) 影响的系统 Final Status Import tool of the i-Educar application 漏洞描述 在一个具有“School”级别权限的认证用户可以绕过预期的功能限制,修改属于市政网络内任何学校单位的学生记录。 通过操纵批量导入过程,攻击者可以执行大量学生数据破坏,如将注册状态更改为“Deceased”(Falecido),导致数据库完整性的总破坏并可能影响官方学校普查统计。 漏洞组件 根因 问题出现在 文件中,该文件使用全局查找方法(如Eloquent的 ),仅根据CSV中提供的ID检索注册记录,而没有将查询范围限制在认证用户的 。 预期行为 通过导入工具修改其他机构记录的任何尝试应被阻止,导致授权错误或跳过那些特定记录。 观察行为 认证用户可以通过使用导入工具修改市政数据库中的任何学生记录,而不管学校的单位,只需在CSV文件中提供目标注册ID。 概念验证 (PoC) 1. 攻击者上下文和权限设置 - 攻击者账户( )严格限制在一个特定的学校单位(小学),具有低级别“School”权限。所有管理或全局编辑权限已禁用。 2. UI中的功能限制(BFLA证据) - 授权访问: 当具有全局或适当本地权限的管理员访问学生记录时,“Final Status”下拉菜单是可见且完全功能,允许手动状态更新。 - 未授权访问(攻击者视图): 当攻击者( )尝试通过标准UI编辑不同学校单位的学生时,“Final Status”下拉菜单被隐藏。系统在前端正确识别用户缺少此特定功能的权限。 3. 负载准备 - 攻击者识别来自其他机构的学生ID(例如,ID 212, 199, 200)。准备CSV负载以强行将状态更改为“Falecido”(Deceased)。 4. 通过导入工具执行绕过 - 攻击者导航到“Final Status Import”工具。上传CSV后,触发易受攻击的服务。后端处理ID而未验证机构所有权。 5. 确认全局影响 - 工具报告所有记录成功。从未经授权的单位检查目标学生的个人资料确认状态已更改。影响多个学生,证明大规模破坏能力。 影响 关键数据完整性失败: 漏洞允许任意修改学生记录到任何可用系统状态(Approved, Transferred, Abandoned, Deceased)。这代表了一个巨大的完整性破坏,因为攻击者可以在一次操作中操纵整个市政网络中成千上万学生的学术或生命状态历史。 多租户隔离破坏: 漏洞完全破坏了不同学校单位之间的逻辑隔离。来自单个学校低权限用户可以影响系统数据库中任何其他机构的数据。 教育统计数据的系统破坏: 由于“Final Status”是官方政府报告(School Census)的主要数据点,此漏洞对官方政府报告的准确性构成直接风险,可能导致法律并发症和公共资金损失。 行政破坏: 从大规模破坏攻击中恢复将需要广泛的数据库取证工作和成千上万记录的手动验证,导致显著的操作停机时间。