实战 | 微信小程序EDUSRC渗透漏洞复盘
字数 1405 2025-08-22 12:23:42
微信小程序EDUSRC渗透漏洞实战教学文档
0x1 前言
本教学文档详细分析了一个微信小程序渗透测试案例,涉及多个漏洞类型和利用技术。通过此案例可以学习微信小程序渗透测试的完整流程和技术要点。
0x2 渗透测试流程与技术要点
一、微信一键登录安全分析
关键点:
-
微信一键登录功能常见安全问题:
- SessionKey、iv和加密字段三要素泄露
- 手机号信息泄露
- 账户越权风险
-
利用工具:
- Wx_SessionKey_crypt加解密工具
- GitHub地址:https://github.com/mrknow001/wx_sessionkey_decrypt/releases
-
攻击方法:
- 解密获取手机号
- 逆向修改手机号并重新加密
- 替换数据包实现账户劫持
二、数据包分析与框架识别
关键点:
-
Jeecg框架识别特征:
- URL路径包含/jeecg、/sys、/system等关键字
- 特定接口命名规范
-
敏感信息接口发现:
- 通过id参数回显用户敏感信息(身份证、姓名、手机号等)
- 历史数据包中寻找id遍历接口
-
JWT认证绕过尝试:
- 识别X-Access-Token校验机制
- 尝试JWT密钥爆破(使用无影工具)
- 参考文章:https://mp.weixin.qq.com/s/ITVFuQpA8OCIRj4wW-peAA
三、接口参数篡改与未授权访问
关键点:
-
参数篡改技术:
- 删除queryById参数
- 添加list参数
- 最终构造未授权访问接口
-
批量数据泄露:
- 构造list?pageNo=1&pageSize=7802获取全部数据
- 共泄露7802条用户敏感信息
四、文件路径与敏感信息泄露
关键点:
-
身份证照片泄露:
- 识别idPhotoF和idPhotoZ参数
- 路径拼接技术
- 通过/download路径成功访问照片
-
自动化脚本:
import json # 解析JSON数据 data = json.loads(json_data) # 基础URL base_url = "https://host/路径" # 遍历每个用户,拼接URL并打印 for user in data: id_photo_f = user.get("idPhotoF") if id_photo_f: full_url = base_url + id_photo_f print(full_url)
五、文件上传漏洞利用
关键点:
-
上传点测试流程:
- 先测试XSS过滤情况
- 确认服务端语言(PHP)
- 尝试绕过过滤(使用phtml扩展名)
-
漏洞验证:
- 成功上传并解析phpinfo页面
- 证明存在getshell风险
六、水平与垂直越权漏洞
关键点:
-
水平越权:
- 使用已收集的用户信息替换登录数据包
- 成功登录其他用户账户
-
垂直越权:
- 寻找admin管理员账户
- 替换数据包实现管理员权限获取
0x3 渗透测试方法论总结
-
数据包分析要点:
- 逐个分析功能点相关数据包
- 理解数据包业务逻辑和走向
- 重点关注接口参数和返回值
-
微信小程序安全特点:
- 防御措施相对简单
- 过滤机制不完善
- 容易存在高危漏洞
-
漏洞挖掘思路:
- 从简单功能点入手
- 关注数据泄露风险
- 尝试参数篡改和接口滥用
- 不放过任何上传点
-
工具与技术栈:
- Burp Suite
- Wx_SessionKey_crypt
- JWT爆破工具
- Python自动化脚本
0x4 防御建议
-
对微信一键登录功能:
- 加强SessionKey保护
- 实现服务端完整验证机制
-
对接口安全:
- 严格的权限控制
- 参数校验和过滤
- 防止未授权访问
-
对文件上传:
- 严格的文件类型检查
- 内容校验而不仅是扩展名检查
- 设置安全存储路径
-
对用户数据:
- 最小化原则(只返回必要数据)
- 敏感信息加密存储
- 严格的访问日志记录
0x5 法律与道德声明
- 所有渗透测试必须获得授权
- 发现漏洞应遵循负责任的披露流程
- 严禁利用技术进行非法活动
- 本文仅用于网络安全技术研究和教学目的