学海教育科技有限公司OA管理后台权限漏洞报告

74次阅读
没有评论

共计 3467 个字符,预计需要花费 9 分钟才能阅读完成。

一、漏洞基本信息

项目 内容
漏洞名称 OA 与教师管理后台账号通用致未授权接口访问漏洞
受影响系统 学海教育科技有限公司 OA 管理后台、教师管理后台
漏洞类型 身份认证缺陷 + 权限控制失效(前端仅过滤显示,后端未严格鉴权)
风险等级 高危(弱口令易被破解,接口可直接调用,存在敏感操作风险)
发现时间 2026 年 1 月 24 日
漏洞概述 两大后台账号通用,普通教师账号可登录 OA 后台;教师普遍使用弱口令,攻击者易暴力破解登录;OA 虽动态隐藏无权限菜单,但前端 JS 泄露页面路由及接口,攻击者可直接调用接口执行敏感操作(如生成刷机码激活码、修改用户 / 学校 / 组内容)。

二、漏洞详情与复现步骤

2.1 漏洞成因

  1. 账号体系设计缺陷 :OA 管理后台与教师管理后台未实现独立身份认证,共用一套账号体系,并且没将教师账号(type4)阻止登录,导致低权限的普通教师账号具备 OA 后台登录权限,突破了“最小权限”原则。
学海教育科技有限公司 OA 管理后台权限漏洞报告
  • 弱口令防护缺失 :系统未强制普通教师设置强口令,多数用户使用 Aa123456 等弱口令,攻击者可通过暴力破解、字典攻击快速获取合法账号。
学海教育科技有限公司 OA 管理后台权限漏洞报告
  • 权限控制机制不完整 :仅依赖前端动态加载过滤菜单显示,未在后端接口层进行严格的权限校验;同时前端 JS 文件未脱敏,直接泄露敏感页面路由及接口信息,形成“前端隐藏、后端放行”的安全漏洞,并且 js 的获取无需任何权限校验。

2.2 复现步骤

  1. 获取普通教师账号:通过弱口令字典暴力破解,或利用已知弱口令账号(如账号:xxxxxx(多数为名字 + 数字组合),密码:Aa123456)。
  2. 跨后台登录:使用该教师账号访问 OA 管理后台登录页面,输入账号密码后成功登录,页面因权限不足动态隐藏所有功能菜单,仅显示空白页面或基础导航栏。
学海教育科技有限公司 OA 管理后台权限漏洞报告
  • 提取敏感路由与接口:通过浏览器开发者工具查看页面加载的 JS 文件,搜索关键词,提取到刷机码查看页面路由(Index/sidebarCode?view=1)及对应动态码添加接口(/index/addCode)。通过此接口可查看对应设备的所属用户或所属用户的设备号,并且加载了 addcode.js,从此 js 可分析出动态码生成 api(/index/doaddCode)。
  • 路径猜测与页面访问:基于已泄露路由格式,猜测其他敏感页面路径(如 /user、/school),访问后页面显示“无权访问”,但浏览器已加载该页面关联的 JS 文件。
  • 接口调用验证:借助 Postman 等工具,携带教师账号的登录凭证(Cookie),直接调用提取到的激活码生成接口,接口正常响应并返回激活码,验证漏洞可被利用。

三、漏洞危害分析

  1. 账号安全易突破 :弱口令 + 账号通用双重问题,使攻击者无需复杂技术即可获取大量合法账号,低成本进入 OA 后台,为后续攻击奠定基础。
  2. 敏感功能被滥用 :激活码、刷机码等接口可被直接调用,可能导致企业核心资源(如账号创建、学校创建权限)被非法控制,引发资产损失或业务混乱。存在学生账号信息调取接口,可批量获取用户身份证、安全问题答案、手机号等隐私信息。
  3. 潜在接口风险扩散 :JS 泄露的路由可引导攻击者猜测更多未公开接口,即使部分页面显示无权访问,仍可能通过接口调用获取敏感数据(如员工信息)或执行破坏性操作。
  4. 业务声誉受损 :若漏洞被恶意利用,可能导致教学管理秩序混乱、敏感信息泄露,影响学海教育的品牌信誉及客户信任。

四、修复建议

4.1 分离账号体系与强化身份认证

  • 拆分 OA 与教师管理后台账号体系,实现独立账号、独立权限管理,普通教师账号默认无 OA 后台登录权限,需单独申请并经审批后方可开通最小权限。
  • 在 OA 后台登录入口增加身份校验逻辑,仅允许指定角色(如管理员、学海老师)的账号登录,直接拦截普通教师账号的登录请求。

4.2 强制弱口令整改与登录防护

  • 实施强口令策略:强制所有教师账号设置复杂度密码(长度≥8 位,包含大小写字母、数字、特殊字符),禁止使用连续数字、生日等弱口令,登陆时提醒用户更换密码。
  • 增加登录安全防护:开启登录失败次数限制(如 5 次失败后锁定账号 30 分钟),对异常登录(异地登录、批量登录)进行告警,管理员账号建议启用双因素认证(2FA)。

4.3 完善全链路权限控制

  • 前端层面:采用动态路由注册机制,仅加载当前用户有权访问的路由及 JS 文件,杜绝无权限路由、接口信息泄露;移除 JS 中硬编码的敏感路径与接口地址。
  • 后端层面:所有接口强制增加角色权限校验,基于用户角色判断是否允许访问,即使携带合法登录凭证,无权限用户调用接口时直接返回 403 禁止访问,从根源阻断未授权调用。

4.4 加强安全审计与漏洞排查

  • 定期开展弱口令扫描与清理,使用专业工具检测系统内弱口令账号并强制整改。
  • 对 OA 系统所有接口进行全面审计,重点排查未授权访问、权限越权等问题,修复接口鉴权漏洞。
  • 建立前端代码安全规范,禁止在客户端代码中泄露敏感路由、接口及配置信息,上线前进行代码安全评审。
部分接口披露
  • /index/addCode 查找用户 / 设备
  • /Index/sidebarCode?view= 1 激活码查看
  • /index/doaddCode 执行激活码生成
  • /assist/Service/getUserClients?id={用户 ID}
  • /assist/Service/createAssist?deviceId={设备 ID}&userName={用户名}&userId={用户 ID}&hidden={是否隐藏 0 1} 远程协助 id 创建
  • /user/device?userId=xxx 设备信息
  • /Appserver/schoolAppDown 应用下载 (失效)
  • /User/userSetPower?iUserId=xxx 用户权力
  • /user/addUser 添加用户
  •  /Group/userGroup 用户组
  • /assist/users/clients 客户端列表
  •  Order/bindStudent 绑定学生列表
  • User/look 查看用户详情
  • User/setSchool 修改学校
  • /group/getDepGroup – 获取部门组树形结构 (index.js:22)
  • Group/getGroup – 获取组列表数据 (index.js:31)
  • Group/getGroupEnum – 获取组类型枚举 (index.js:133)
  • Group/createGroup – 创建新组 (index.js:122)
  • Group/groupPower – 组权限设置页面 (index.js:130)
  • group/groupUser – 查看组成员 (index.js:141)
  • group/setGroupDep – 设置组所属部门 (index.js:165)
  • group/delGroup – 删除组 (index.js:171)
  • group/resetGroupDep – 重置组部门 (index.js:175)
  • Group/modifyGroup – 修改组信息 (index.js:231)
  • 学校数据管理相关
  • School/getDgData – 获取学校列表数据(DataGrid)
  • School/getSchoolInfo/{schoolId} – 获取学校详细信息
  • School/modifyData – 添加 / 修改学校数据
  • School/delData – 删除学校
  • School/exportSchool – 导出学校数据
  • 科目与区域相关
  • getSubjects – 获取科目列表
  • School/getAreaData – 获取区域数据(省市区)
  • customer/customer/getAreaById/{areaId} – 根据区域 ID 获取子区域
  • School/getFocusLevel – 获取关注级别
  • 用户与登录相关
  • school/refreshSchoolLogin – 刷新学校登录状态
  • school/getSchoolSecret – 获取学校密钥配置
  • school/setSchoolSecret – 设置学校密钥
  • 分组与刷题王相关
  • school/lockAllGroup – 锁定 / 解锁所有分组
  • stats_brush/checkBrushGroupStatus – 检查刷题王分组状态
  • 统计与功能设置
  • School/getStatData – 获取学校统计数据
  • School/setStudy – 设置学习功能状态
  • School/setSchoolAnswer – 设置在线答题状态
  • School/initXiaoxian – 同步小闲学生及班级数据
  • /customer
  • /feedback
  • /School/getUser?schoolId=x&userType=x
  • /School/changeSchoolInfo
  • /School/changeSchool

正文完
 0
无限制
版权声明:本站原创文章,由 无限制 于2026-05-20发表,共计3467字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)