微信小程序抓包及测试

本文介绍了如何使用BurpSuite+Proxifer+微信客户端进行微信小程序的抓包测试,详细阐述了环境准备、小程序反编译及可能的安全漏洞,通过实际案例展示了抓包反编译过程,并揭示了在测试过程中意外发现的SQL注入漏洞。

目录

环境准备

小程序反编译

一不小心getshell


本来只想写个抓包反编译过程,没想到大肠包小肠有意外收获

网上大多数的小程序测试抓包都是用的安卓模拟器,这里使用的是BurpSuite+Proxifer+微信客户端的抓包方式

环境准备

Burp2023.9.2

Proxifier4.5

Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器,工作的网络程序能通过HTTPS或socks或代理链。其是收费软件,免费试用31天,这里给一个破解版链接

链接:百度网盘 请输入提取码

提取码:7o50

图片1.png

安装就无脑next就好了,安装好后打开

图片2.png

点击注册,名字随便写,随便复制一个注册码点击ok即可

Proxifier配置

打开proxifier,点击profile添加一个代理服务器

图片3.png

图片4.png

地址127.0.0.1,端口自定义,我这里是8888,协议选择https

继续添加一条代理规则

在我们用微信打开小程序时,进程里会多出一个WeChatAppEx

图片5.png

这个程序就是微信小程序的进程

添加规则

图片7.png

Applications就选择小程序进程应用(这里可以手动输入),Action就选择刚刚新建的代理服务器

Burp配置

图片8.png

只要编辑代理监听器和proxifier里的代理服务器一样即可,监听127.0.0.1:8888

这时微信打开一个小程序,可以看到WeChatAppEx的流量先经过proxifier,再用过127.0.0.1:8888到burp

图片9.png

现在就可以像平时测试web站点一样的方式在burp里对数据包进行测试

小程序反编译

图片10.png

在微信的设置里面可以找到微信文件保存的位置

图片11.png

目录下的Applet就是小程序缓存文件的保存地址

图片12.png

平时使用的小程序越多,对应的文件也就越多,如果找不到自己想要测试的小程序包,可以根据修改日期来找,或者直接简单粗暴,删除所有的缓存文件,再重新打开你想要测试的小程序

图片13.png

这时里面的就是我们要测试小程序对应的缓存文件夹

点开里面就是我们要解的包

图片14.png

这是一个加密的包,当用户在微信中搜索或扫描小程序二维码后,微信后台会将该小程序的相关信息打包成 .wxapkg 文件并下发到用户的设备中,这种文件格式实际上是一个压缩包,其中包含了小程序的所有代码、资源和配置文件等内容,以及一个特定的描述文件 app.json。

由于是加密的包,所以先来解密,下面是大佬的解密工具链接

链接:百度网盘 请输入提取码

提取码:qz3z

图片15.png

选中加密的包

图片16.png

解密成功后在工具目录的wxpack目录下

### iOS 平台微信小程序抓包方法与网络请求分析 要在 iOS 平台上对微信小程序进行抓包网络请求分析,通常可以通过使用 Charles Proxy 工具实现。以下是详细的操作步骤和注意事项: #### 一、配置 Charles Proxy 环境 1. **安装 Charles Proxy** 在 Mac 上安装 Charles Proxy 软件,这是进行抓包分析的主要工具。 2. **设置代理环境** 在 iOS 设备上,打开“设置”应用,进入“无线局域网”页面,点击当前连接的 Wi-Fi 名称右侧的蓝色“i”图标,进入代理设置页面,选择“手动代理”,输入 Charles 所在电脑的局域网 IP 地址和 Charles 的代理端口号(默认为 8888)[^2]。 3. **安装 Charles 证书** 在 iOS 设备浏览器中访问 `http://charlesproxy.com/getssl` 下载并安装 Charles 的根证书,以便解密 HTTPS 流量。此外,也可以通过访问 `http://电脑IP:9898/api/v1/cert` 下载证书,确保 iOS 设备能够访问该地址[^3]。 #### 二、启用微信小程序抓包 1. **启动 Charles 抓包功能** 在 Charles 中启用“SSL Proxying”功能,并确保已配置好需要解密的域名。对于微信小程序,可能需要添加 `*.qq.com` 等相关域名以进行解密。 2. **打开微信小程序进行测试** 在 iOS 设备上打开微信并进入目标小程序,Charles 将自动捕获小程序发出的网络请求,包括请求头、请求体、响应内容等信息。 #### 三、处理证书固定(Certificate Pinning) 部分微信小程序可能启用了证书固定(Certificate Pinning),这会阻止 Charles 解密 HTTPS 流量。对于此类情况,可以尝试以下方法绕过: - **使用 Frida 动态插桩工具** Frida 可用于在运行时修改小程序的网络请求逻辑,绕过证书固定机制。此方法需要一定的逆向工程知识,并且可能涉及违反小程序服务条款的风险。 - **越狱设备并安装中间人工具** 越狱后可以安装如 SSL Kill Switch 等工具,禁用证书固定功能,从而实现抓包。但此方法存在安全风险,并可能导致设备不稳定或失去保修[^1]。 #### 四、注意事项 - **法律与隐私**:请确保仅对自有或授权的小程序进行抓包,避免侵犯他人隐私或违反法律法规。 - **数据安全**:在抓包过程中尽量避免操作涉及敏感信息(如登录、支付等)的接口,以防止数据泄露。 - **兼容性问题**:Mac 版微信目前不支持小程序运行,建议在 iOS 或 Android 设备上进行抓包,再通过 Charles 代理到 Mac 上进行分析[^1]。 #### 示例代码:使用 Charles API 获取证书地址 ```swift // 示例 Swift 代码,展示如何通过 HTTP 请求获取 Charles 提供的证书 import Foundation let url = URL(string: "http://192.168.1.100:9898/api/v1/cert")! let task = URLSession.shared.dataTask(with: url) { data, response, error in guard let data = data, error == nil else { print("Error: $error!)") return } print("Certificate data: $data)") } task.resume() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值