关键漏洞信息 漏洞类型 客户端注入 (Client-Side Injection) LMS信任绕过 (LMS Trust Bypass) 存储型XSS (Stored XSS) 影响 满分注入:无需回答问题即可获得满分。 伪造完成状态:触发LMS中的同步,导致成绩被记录。 潜在的存储型XSS向量:可能影响其他用户。 无服务器端验证的提交成绩:客户端可以随意修改成绩并提交。 漏洞原因 平台完全依赖客户端JavaScript值进行成绩报告。 函数用于将数据发送回服务器和LMS,但未对源或完整性进行验证。 复现步骤 1. 打开InQuizitive平台(最好通过LMS)。 2. 打开开发者工具控制台。 3. 粘贴并运行特定的JavaScript代码来修改成绩。 4. 刷新章节总结或LMS成绩簿,显示满分和完美成绩。 为什么会发生 InQuizitive在前端执行所有关键评分逻辑。 JavaScript对象和函数在全局窗口作用域中可访问、可执行和可修改。 平台在接收成绩提交之前不执行任何身份验证、授权或验证检查。 远程攻击者可以做什么 跳过问题。 直接操纵分数、时间花费和表现历史。 提交看似合法的满分成绩,同时在InQuizitive UI和连接的LMS中保持一致。 储存型XSS PoC 攻击者可以通过 方法注入恶意脚本。 当这些条目在教师仪表板、学生复习页面或分析工具中呈现时,会触发XSS。 后果 反馈视图对学生的影响。 教师的复习视图。 课堂活动日志。 如果描述在工具提示或摘要报告中呈现,ROOM——XSS会打击查看它的人。 Yikes!这可能会更糟 初始漏洞允许学生篡改自己的测验数据。 真正的危险在于能够将存储的XSS有效载荷注入到以后由特权上下文(如教师仪表板、LMS集成等)呈现的数据中。 示例攻击场景 存储型XSS - 教师会话劫持 跨平台LMS攻击(Canvas、Blackboard等) 自动触发年级更改 导出所有学生数据到远程服务器 注入更多JavaScript到未来测验或反馈字段 总结 此漏洞展示了客户端逻辑在没有适当服务器端验证的情况下是多么脆弱,以及如何利用这一点进行各种攻击,包括成绩操纵和跨站脚本攻击。