记一次挖掘edu-src的过程
字数 1204 2025-08-03 16:43:21
教育系统安全漏洞挖掘实战教学文档
信息收集阶段
子域名枚举
- 使用在线子域名查询工具快速获取目标教育系统的所有子域名
- 重点关注具有以下功能的子域名:
- 登录功能
- 注册功能
- 教务管理系统
- 项目管理平台
- 微信小程序接口
敏感功能点识别
- 在发现的子域名中,识别并记录所有包含用户交互的功能点
- 特别关注:
- 用户注册/登录界面
- 密码找回功能
- 个人信息编辑功能
- 文件上传功能
漏洞挖掘技术
存储型XSS漏洞挖掘
-
发现输入点:
- 在用户个人信息编辑页面发现可编辑字段
- 确认这些字段的内容会被持久化存储
-
测试方法:
- 在可编辑字段中输入XSS测试payload:
<script>alert(1)</script> - 提交并保存修改
- 检查payload是否被存储并执行
- 在可编辑字段中输入XSS测试payload:
-
利用场景:
- 管理员查看用户信息时触发XSS
- 窃取管理员cookie实现权限提升
逻辑漏洞挖掘(密码找回功能)
漏洞原理
- 密码找回功能验证逻辑缺陷
- 验证码发送目标可被篡改
详细攻击步骤
-
准备测试账号:
- 注册两个测试账号:
- 目标账号:188xxxxx519
- 攻击者账号:173xxxxx676
- 注册两个测试账号:
-
拦截请求:
- 在目标账号的密码找回页面输入目标手机号
- 点击"发送验证码"时使用Burp Suite拦截请求
-
篡改请求:
- 修改拦截到的请求中的
phone参数为攻击者手机号 - 转发修改后的请求
- 修改拦截到的请求中的
-
获取验证码:
- 验证码被发送到攻击者手机而非目标手机
- 记录收到的验证码
-
重置密码:
- 使用获取的验证码重置目标账号密码
- 使用新密码成功登录目标账号
漏洞本质
- 服务端未验证"接收验证码的手机号"与"账号注册手机号"的一致性
- 仅依赖客户端提供的手机号参数进行验证码发送
高级挖掘思路
源代码审计方法
-
获取源代码途径:
- 开源框架:从官方渠道获取
- 闭源系统:
- 使用FOFA等搜索引擎查找使用相同框架的其他站点
- 寻找开发者遗留的备份文件(如.zip、.bak、.git等)
-
审计重点:
- 认证授权逻辑
- 输入验证处理
- 敏感操作流程
-
批量利用:
- 根据审计结果编写POC脚本
- 针对同框架系统进行批量测试
防御建议
针对存储型XSS
- 对所有用户输入进行HTML实体编码
- 实施严格的Content Security Policy (CSP)
- 使用安全的富文本编辑器白名单
针对逻辑漏洞
- 密码找回功能应严格验证请求手机号与注册手机号的一致性
- 关键操作应使用多因素认证
- 服务端应保持完整的状态跟踪,不依赖客户端提供的关键参数
总结与提升
-
基础挖掘流程:
- 信息收集 → 功能分析 → 输入点测试 → 逻辑验证
-
进阶方向:
- 提高代码审计能力
- 学习常见框架的安全机制
- 掌握自动化测试工具开发
-
注意事项:
- 遵守法律法规,获得测试授权
- 及时提交漏洞报告
- 注重漏洞原理理解而非单纯利用
本教学文档基于实际案例展示了教育系统安全测试的完整流程和关键技术点,适合作为渗透测试人员的学习参考和实践指南。