深度解析微信小程序漏洞挖掘
字数 1706 2025-08-29 08:30:12

微信小程序漏洞挖掘深度解析

概述

微信小程序渗透在护网、SRC挖掘、攻防演练中都可以成为突破口。与普通网页渗透相比,微信小程序有以下不同点:

  1. 抓包方式不同,不能直接进行抓包
  2. 不能直接进行调试,遇到加密传输时较为棘手
  3. 有自己特有的漏洞类型
  4. 某些小程序会进行额外限制,增加测试难度

抓包篇

方法一:ProxyPin + Burpsuite

ProxyPin简介

  • 开源免费抓包工具
  • 支持全平台(Windows、Mac、Android、IOS、Linux)
  • 优势功能:
    • 支持JavaScript脚本处理请求/响应
    • 请求重写(重定向、替换报文、正则修改)
    • 请求屏蔽(基于URL)

操作步骤

  1. 安装证书到"受信任的根证书颁发机构"
  2. 成功抓包
  3. 将流量转发到Burpsuite
  4. 可添加代理域名黑名单减少无关流量

方法二:Proxifier + Burpsuite

Proxifier特点

  • 功能强大的网络代理工具
  • 高度自定义的流量转发能力

配置步骤

  1. 添加代理服务器(端口与Burpsuite一致)
  2. 创建规则:WeChatApp.exe;WechatBrowser.exe;WeChatAppEx.exe
  3. 如无法抓包,尝试退出微信重新登录

逆向篇

一、开启微信小程序DevTools

使用工具:WeChatOpenDevTools

注意事项

  • 建议使用小号,避免封号
  • 不是所有微信版本都支持
  • 需特定版本微信(链接提供)

操作步骤

  1. 安装依赖:pip3 install -r requirements.txt
  2. 开启小程序DevTools:python main.py -x
  3. 打开目标小程序自动hook
  4. 重新进入小程序:python main.py -c

常见问题

  1. Python版本问题(推荐3.10)
  2. 微信版本冲突(需完全卸载新版)
  3. 需退出所有微信实例

二、微信小程序反编译

操作流程

  1. 扫描小程序:wxapkg.exe scan
    • 获取名称、路径、wxid等信息
  2. 选择目标小程序回车执行解密+解包
  3. 如未发现目标小程序:
    • 添加到"我的小程序"
    • 重新进入小程序
  4. 反编译成功获取源码

漏洞篇

一、敏感信息泄露

检测方法

  1. 筛选反编译后的js文件(使用Everything工具)
    • 查询语句:path:目录 .js
  2. 使用脚本扫描敏感信息:
    • python secertinfo.py js文件目录
  3. 查找内容:acesskey、身份证、手机号、密码等

二、任意用户登录漏洞

利用条件

  • 采用开发者后台校验与解密开放数据
  • 数据包泄露sessionkey和iv

利用步骤

  1. 使用Burpsuite HAE插件匹配sessionKey
  2. 使用AppletPentester插件进行数据包加解密
  3. 可修改用户手机号等信息实现任意用户登录

技巧篇

一、解决功能点无法加载

  • 手机端正常但电脑端加载失败时:
    1. 在手机端打开功能点
    2. 复制链接(形式如:#小程序://中国电信App/8zsyCcxJscGz0QA
    3. 电脑端访问该链接

二、绕过"仅限手机打开"限制

  1. 先在手机端打开目标小程序
  2. 电脑端会自动显示最近打开的小程序
  3. 从电脑端入口进入

三、便捷真机测试方法

使用工具:QtScrcpy手机投屏

操作流程

  1. USB连接手机和电脑
  2. 选择"一键wifi连接"模式
  3. 连接成功后拔掉USB
  4. 直接在电脑上操作手机界面

相关工具下载

  1. 所有工具打包:https://pan.quark.cn/s/d4d10bb0d3ee
  2. ProxyPin:https://github.com/wanghongenpin/network_proxy_flutter
  3. 特定微信版本:https://github.com/tom-snow/wechat-windows-versions/releases/download/v3.9.10.27/WeChatSetup-3.9.10.27.exe
  4. WeChatOpenDevTools:https://github.com/JaveleyQAQ/WeChatOpenDevTools-Python
微信小程序漏洞挖掘深度解析 概述 微信小程序渗透在护网、SRC挖掘、攻防演练中都可以成为突破口。与普通网页渗透相比,微信小程序有以下不同点: 抓包方式不同,不能直接进行抓包 不能直接进行调试,遇到加密传输时较为棘手 有自己特有的漏洞类型 某些小程序会进行额外限制,增加测试难度 抓包篇 方法一:ProxyPin + Burpsuite ProxyPin简介 : 开源免费抓包工具 支持全平台(Windows、Mac、Android、IOS、Linux) 优势功能: 支持JavaScript脚本处理请求/响应 请求重写(重定向、替换报文、正则修改) 请求屏蔽(基于URL) 操作步骤 : 安装证书到"受信任的根证书颁发机构" 成功抓包 将流量转发到Burpsuite 可添加代理域名黑名单减少无关流量 方法二:Proxifier + Burpsuite Proxifier特点 : 功能强大的网络代理工具 高度自定义的流量转发能力 配置步骤 : 添加代理服务器(端口与Burpsuite一致) 创建规则:WeChatApp.exe;WechatBrowser.exe;WeChatAppEx.exe 如无法抓包,尝试退出微信重新登录 逆向篇 一、开启微信小程序DevTools 使用工具 :WeChatOpenDevTools 注意事项 : 建议使用小号,避免封号 不是所有微信版本都支持 需特定版本微信(链接提供) 操作步骤 : 安装依赖: pip3 install -r requirements.txt 开启小程序DevTools: python main.py -x 打开目标小程序自动hook 重新进入小程序: python main.py -c 常见问题 : Python版本问题(推荐3.10) 微信版本冲突(需完全卸载新版) 需退出所有微信实例 二、微信小程序反编译 操作流程 : 扫描小程序: wxapkg.exe scan 获取名称、路径、wxid等信息 选择目标小程序回车执行解密+解包 如未发现目标小程序: 添加到"我的小程序" 重新进入小程序 反编译成功获取源码 漏洞篇 一、敏感信息泄露 检测方法 : 筛选反编译后的js文件(使用Everything工具) 查询语句: path:目录 .js 使用脚本扫描敏感信息: python secertinfo.py js文件目录 查找内容:acesskey、身份证、手机号、密码等 二、任意用户登录漏洞 利用条件 : 采用开发者后台校验与解密开放数据 数据包泄露sessionkey和iv 利用步骤 : 使用Burpsuite HAE插件匹配sessionKey 使用AppletPentester插件进行数据包加解密 可修改用户手机号等信息实现任意用户登录 技巧篇 一、解决功能点无法加载 手机端正常但电脑端加载失败时: 在手机端打开功能点 复制链接(形式如: #小程序://中国电信App/8zsyCcxJscGz0QA ) 电脑端访问该链接 二、绕过"仅限手机打开"限制 先在手机端打开目标小程序 电脑端会自动显示最近打开的小程序 从电脑端入口进入 三、便捷真机测试方法 使用工具 :QtScrcpy手机投屏 操作流程 : USB连接手机和电脑 选择"一键wifi连接"模式 连接成功后拔掉USB 直接在电脑上操作手机界面 相关工具下载 所有工具打包:https://pan.quark.cn/s/d4d10bb0d3ee ProxyPin:https://github.com/wanghongenpin/network_ proxy_ flutter 特定微信版本:https://github.com/tom-snow/wechat-windows-versions/releases/download/v3.9.10.27/WeChatSetup-3.9.10.27.exe WeChatOpenDevTools:https://github.com/JaveleyQAQ/WeChatOpenDevTools-Python