深度解析微信小程序漏洞挖掘
字数 1706 2025-08-29 08:30:12
微信小程序漏洞挖掘深度解析
概述
微信小程序渗透在护网、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