edusrc漏洞笔记(逻辑篇2.0)
字数 1764 2025-08-12 11:34:25
教育系统逻辑漏洞挖掘实战教学文档
1. 水平越权漏洞
1.1 漏洞描述
在高校个人中心的"sfz补办申请"功能中,通过修改请求参数可以越权访问其他用户的敏感信息。
1.2 漏洞复现步骤
- 访问个人中心的sfz补办申请功能
- 使用Burp Suite等工具拦截请求
- 观察请求参数中的
property value字段,该字段值为当前学号 - 修改
property value参数为其他学号并发送请求 - 成功获取其他用户的敏感信息
1.3 漏洞原理
系统未对用户身份进行严格校验,仅通过前端传递的参数判断用户身份,导致可以通过修改参数值实现水平越权。
2. 垂直越权漏洞
2.1 漏洞描述
在水平越权的基础上,通过修改身份类型参数可以实现从普通用户到管理员权限的垂直越权。
2.2 漏洞复现步骤
- 在水平越权的请求基础上
- 将
property value参数修改为admin - 发送请求
- 成功获取管理员权限的敏感信息和email
2.3 漏洞原理
系统对不同身份类型的用户未做权限隔离,仅通过参数值判断用户身份级别。
3. 信息采集模块越权漏洞
3.1 漏洞描述
在信息采集模块中,通过修改请求参数可以实现水平越权和垂直越权。
3.2 漏洞复现步骤
- 访问信息采集模块的申请功能
- 拦截请求,观察参数
personId=xxx&type=xxx - 修改
personId为其他学号实现水平越权 - 将
type参数从stu修改为teacher实现垂直越权 - 进一步尝试
personId=admin&type=tea组合
3.3 漏洞原理
系统仅依赖前端传递的参数判断用户身份和权限,未在服务端进行严格校验。
4. 文件下载越权漏洞
4.1 漏洞描述
在资助申请表下载功能中,通过修改URL参数可以越权下载他人的申请表。
4.2 漏洞复现步骤
- 访问资助申请表下载功能
- 获取下载链接,观察URL中的
familyinfoKey参数 - 修改
familyinfoKey参数值为其他用户的ID - 直接访问修改后的URL下载他人申请表
4.3 漏洞原理
系统未对文件下载权限进行校验,仅通过URL参数判断要下载的文件,且ID为连续可遍历。
5. 验证码复用漏洞
5.1 漏洞描述
通过验证码复用可以进入后台系统,并获取加密的密码信息。
5.2 漏洞复现步骤
- 拦截登录请求
- 观察返回的密码信息(MD5加密)
- 使用MD5解密工具解密密码
- 在实名认证功能中拦截请求,获取身份证号等敏感信息
- 通过userid的MD5密文可解密出工号
5.3 漏洞原理
系统未对验证码进行一次性校验,且敏感信息未做充分保护。
6. 任意密码重置漏洞
6.1 漏洞描述
在密码修改功能中,通过修改请求参数可以实现任意用户密码重置。
6.2 漏洞复现步骤
- 拦截密码修改请求
- 首次请求中的password字段为老密码,放行一次
- 第二次请求中的password字段为新密码
- 修改请求中的
userid参数为其他用户ID - 发送请求实现任意用户密码重置
6.3 漏洞原理
系统在更新密码时未进行鉴权,仅通过请求参数判断用户身份。
7. 漏洞挖掘方法论
- 参数篡改测试:对请求中的所有参数进行篡改测试,特别是与身份相关的参数
- 权限提升测试:尝试将普通用户参数修改为管理员参数
- ID遍历测试:对数字型ID进行增减测试,检查是否存在越权
- 加密参数分析:对加密参数进行解密尝试,特别是常见的MD5加密
- 流程绕过测试:分析业务流程中的每个环节,寻找可以跳过的步骤
8. 防御建议
- 身份验证:在服务端严格验证用户身份,不依赖前端传递的参数
- 权限控制:实现基于角色的访问控制(RBAC)
- 会话管理:使用安全的会话管理机制
- 参数校验:对所有输入参数进行严格校验
- 敏感信息保护:对敏感信息进行加密存储和传输
- 日志审计:记录关键操作的日志
- 业务逻辑安全:对业务流程中的每个环节进行安全设计
9. 总结
本文介绍了教育系统中常见的逻辑漏洞类型,包括水平越权、垂直越权、文件下载越权、验证码复用和任意密码重置等。这些漏洞的共同特点是系统未对用户身份和权限进行严格校验,过度依赖前端传递的参数。在漏洞挖掘过程中,重点关注与身份相关的参数,尝试修改这些参数是发现逻辑漏洞的有效方法。