深度解析微信小程序漏洞挖掘
字数 1652 2025-08-29 08:30:19
微信小程序漏洞挖掘深度解析
概述
微信小程序渗透在护网、SRC挖掘、攻防演练中都可以成为突破口。与普通网页渗透相比,微信小程序渗透有以下不同点:
- 抓包方式不同,不能直接进行抓包
- 不能直接进行调试,遇到加密传输时较为棘手
- 有自己特有的漏洞类型
- 某些小程序会进行特殊限制,增加测试难度
本文将分为四个章节详细解析:抓包篇、逆向篇、漏洞篇、技巧篇。
抓包篇
方法一:ProxyPin + Burpsuite
ProxyPin优势:
- 开源免费,支持全平台
- 支持JavaScript脚本处理请求/响应
- 支持请求重写、重定向和报文替换
- 支持根据URL屏蔽请求
操作步骤:
- 安装证书到"受信任的根证书颁发机构"
- 成功抓包后将流量转发到Burpsuite
- 将不想被抓包的域名添加到代理域名黑名单,减少Burpsuite处理的数据量
方法二:Proxifier + Burpsuite
操作步骤:
- 添加代理服务器(端口与Burpsuite保持一致)
- 创建规则
- 成功抓包
注意:如配置后无法抓包,尝试退出微信重新登录
逆向篇
一、微信小程序开启DevTools
使用WeChatOpenDevTools工具一键开启DevTools(建议使用小号避免封号)
操作步骤:
- 安装依赖库
- 运行命令开启微信小程序中的F12(DevTools)
- 打开目标小程序或重新进入小程序自动hook开启DevTools
踩坑经验:
- Python版本问题:建议使用Python3.10,低版本可能缺少frida依赖库
- 微信版本问题:新版微信可能无法开启,需完全卸载后安装特定旧版本
- 开启浏览器DevTools时需先退出所有微信实例
二、微信小程序反编译
操作步骤:
- 使用
wxapkg.exe scan命令扫描所有小程序(需联网) - 获取小程序名称、路径、wxid等信息
- 使用键盘上下键选中目标小程序,按Enter执行解密+解包
- 如未发现目标小程序,可先添加到自己的小程序再重新查看
反编译结果:
- 成功后会生成反编译后的文件目录
- 包含小程序源码等可分析内容
漏洞篇
一、敏感信息泄露
检测方法:
- 筛选反编译后的js文件(可使用Everything工具)
- 使用查询语句筛选出所有js文件
- 将js文件集中到一个目录
- 使用脚本自动查找敏感信息(accesskey、身份证、手机号、密码等)
二、任意用户登录
漏洞原理:
小程序采用开发者后台校验与解密开放数据时,若泄露session key和iv,可导致任意用户登录
检测步骤:
- 使用Burpsuite的HAE插件规则匹配数据包中的sessionKey
- 获取sessionKey和iv后,使用AppletPentester插件对数据包进行加解密
- 可修改用户手机号等信息实现任意用户登录
技巧篇
一、解决功能点无法加载问题
现象:
- 手机端正常但电脑端一直加载
- 某些功能点点击无反应
解决方法:
- 在手机上点击目标功能点
- 复制链接(形式如
#小程序://中国电信App/8zsyCcxJscGz0QA) - 在电脑端通过链接访问
二、绕过"仅限手机打开"限制
解决方法:
- 先在手机端打开目标小程序
- 此时电脑端会显示最近打开的小程序
- 从电脑端入口进入即可绕过限制
三、便捷真机测试方法
推荐工具:QtScrcpy手机投屏
操作步骤:
- USB连接手机和电脑
- 使用一键wifi连接功能
- 连接成功后拔掉USB
- 直接在电脑上进行真机测试
优势:
- 避免双屏切换不便
- 适用于有真机检测的APP
相关工具
所有工具打包下载:
https://pan.quark.cn/s/d4d10bb0d3ee
WeChatOpenDevTools工具:
[工具链接]