实战SRC挖掘|微信小程序渗透漏洞复盘
字数 1399 2025-08-29 22:41:24

微信小程序渗透漏洞实战教学文档

0x01 前言

本教学文档基于真实微信小程序渗透案例,详细讲解从信息收集到漏洞利用的全过程,包含多个高危漏洞的发现与利用方法。案例中涉及敏感信息泄露、文件上传漏洞、越权漏洞等多种安全风险。

0x02 渗透测试流程

一、微信一键登录安全风险

漏洞原理

  • 微信小程序一键登录功能可能泄露SessionKey、iv及加密字段三要素
  • 攻击者可利用Wx_SessionKey_crypt工具解密获取用户手机号
  • 通过逆向修改手机号并重新加密,可实现账户劫持

利用步骤

  1. 使用BurpSuite拦截微信一键登录数据包
  2. 分析数据包中是否包含SessionKey、iv和加密字段
  3. 使用解密工具解密获取真实手机号
  4. 修改手机号后重新加密并替换原数据包

二、数据包分析与敏感信息泄露

Jeecg框架识别特征

  • URL路径包含/jeecg、/sys、/system等关键字
  • 特定返回头或错误信息

敏感信息泄露漏洞

  1. 通过用户ID参数(queryById)可查询身份证、姓名、手机号等敏感信息
  2. 发现list接口可获取大量用户ID
  3. 尝试遍历ID获取敏感信息时遇到X-Access-Token校验

JWT伪造尝试

  1. 尝试爆破JWT密钥但未成功
  2. 推荐工具:无影JWT爆破工具
  3. 参考文章:《一次完整的Jwt伪造漏洞实战案例》

绕过限制方法

  1. 分析原始数据包路径结构
  2. 删除queryById参数
  3. 添加list参数实现未授权访问
  4. 构造list?pageNo=1&pageSize=7802获取全部用户数据

三、身份证照片泄露

利用方法

  1. 发现idPhotoF和idPhotoZ参数(身份证正反面)
  2. 直接拼接域名访问失败(Spring-Boot报错)
  3. 通过文件下载功能点获取真实存储路径
  4. 拼接/download路径成功访问照片

自动化脚本

# Python脚本示例:批量获取身份证照片
import requests

base_url = "https://target.com/download/"
photo_urls = [...]  # 从数据包中提取的7806个照片路径

for path in photo_urls:
    full_url = base_url + path
    response = requests.get(full_url)
    # 保存照片逻辑...

四、文件上传漏洞

测试步骤

  1. 测试实名认证功能中的文件上传点
  2. 先尝试XSS payload测试过滤机制
  3. 确认无过滤后尝试上传Webshell

绕过技巧

  1. 识别网站为PHP环境
  2. 尝试.php扩展名被过滤
  3. 使用.phtml扩展名绕过并成功解析
  4. 上传phpinfo()页面验证漏洞

五、越权漏洞

水平越权

  1. 使用收集的用户数据替换登录数据包
  2. 成功登录其他用户账户
  3. 访问受限功能

垂直越权

  1. 在用户数据中查找admin权限账户
  2. 替换数据包为管理员凭证
  3. 成功获取管理员权限

0x03 防御建议

  1. 微信登录安全

    • 避免在前端暴露SessionKey等敏感信息
    • 实现完善的会话管理机制
  2. 敏感信息保护

    • 严格校验访问权限
    • 实现最小权限原则
    • 对敏感接口添加强认证
  3. 文件上传安全

    • 实施文件类型白名单
    • 重命名上传文件
    • 限制可执行文件上传
  4. 越权防护

    • 实施完善的权限校验
    • 使用不可预测的会话令牌
    • 关键操作添加二次验证
  5. 其他建议

    • 定期安全审计
    • 实施WAF防护
    • 敏感数据加密存储

0x04 总结

本案例展示了微信小程序常见的安全风险链:

  1. 从信息泄露漏洞开始
  2. 利用泄露信息进行越权攻击
  3. 通过功能点测试发现文件上传漏洞
  4. 最终获取系统控制权限

渗透测试关键点:

  • 仔细分析每个数据包的结构和参数
  • 尝试多种参数组合绕过限制
  • 保持对框架特征的敏感性
  • 自动化工具可提高效率

注意:所有渗透测试必须获得授权,未经授权的测试属于违法行为。本教学仅用于网络安全技术研究。

微信小程序渗透漏洞实战教学文档 0x01 前言 本教学文档基于真实微信小程序渗透案例,详细讲解从信息收集到漏洞利用的全过程,包含多个高危漏洞的发现与利用方法。案例中涉及敏感信息泄露、文件上传漏洞、越权漏洞等多种安全风险。 0x02 渗透测试流程 一、微信一键登录安全风险 漏洞原理 : 微信小程序一键登录功能可能泄露SessionKey、iv及加密字段三要素 攻击者可利用Wx_ SessionKey_ crypt工具解密获取用户手机号 通过逆向修改手机号并重新加密,可实现账户劫持 利用步骤 : 使用BurpSuite拦截微信一键登录数据包 分析数据包中是否包含SessionKey、iv和加密字段 使用解密工具解密获取真实手机号 修改手机号后重新加密并替换原数据包 二、数据包分析与敏感信息泄露 Jeecg框架识别特征 : URL路径包含/jeecg、/sys、/system等关键字 特定返回头或错误信息 敏感信息泄露漏洞 : 通过用户ID参数(queryById)可查询身份证、姓名、手机号等敏感信息 发现list接口可获取大量用户ID 尝试遍历ID获取敏感信息时遇到X-Access-Token校验 JWT伪造尝试 : 尝试爆破JWT密钥但未成功 推荐工具:无影JWT爆破工具 参考文章:《一次完整的Jwt伪造漏洞实战案例》 绕过限制方法 : 分析原始数据包路径结构 删除queryById参数 添加list参数实现未授权访问 构造list?pageNo=1&pageSize=7802获取全部用户数据 三、身份证照片泄露 利用方法 : 发现idPhotoF和idPhotoZ参数(身份证正反面) 直接拼接域名访问失败(Spring-Boot报错) 通过文件下载功能点获取真实存储路径 拼接/download路径成功访问照片 自动化脚本 : 四、文件上传漏洞 测试步骤 : 测试实名认证功能中的文件上传点 先尝试XSS payload测试过滤机制 确认无过滤后尝试上传Webshell 绕过技巧 : 识别网站为PHP环境 尝试.php扩展名被过滤 使用.phtml扩展名绕过并成功解析 上传phpinfo()页面验证漏洞 五、越权漏洞 水平越权 : 使用收集的用户数据替换登录数据包 成功登录其他用户账户 访问受限功能 垂直越权 : 在用户数据中查找admin权限账户 替换数据包为管理员凭证 成功获取管理员权限 0x03 防御建议 微信登录安全 : 避免在前端暴露SessionKey等敏感信息 实现完善的会话管理机制 敏感信息保护 : 严格校验访问权限 实现最小权限原则 对敏感接口添加强认证 文件上传安全 : 实施文件类型白名单 重命名上传文件 限制可执行文件上传 越权防护 : 实施完善的权限校验 使用不可预测的会话令牌 关键操作添加二次验证 其他建议 : 定期安全审计 实施WAF防护 敏感数据加密存储 0x04 总结 本案例展示了微信小程序常见的安全风险链: 从信息泄露漏洞开始 利用泄露信息进行越权攻击 通过功能点测试发现文件上传漏洞 最终获取系统控制权限 渗透测试关键点: 仔细分析每个数据包的结构和参数 尝试多种参数组合绕过限制 保持对框架特征的敏感性 自动化工具可提高效率 注意 :所有渗透测试必须获得授权,未经授权的测试属于违法行为。本教学仅用于网络安全技术研究。