目前,小程序的应用可以说相当普遍,在渗透测试和外部打点时,如果对目标系统没有有效的思路时,不妨试着从小程序下手。
解密与解包
获取小程序源码的方式有很多种,可以通过夜神这类安卓模拟器、iOS、安卓手机等获取到小程序包,而PC端的小程序包则进行了相应的加密。这里就以比较复杂PC端为例展开讲解。
找到目标小程序包
1、一般小程序包位置位于微信文件管理目录的\WeChat Files\Applet\
目录下
2、打开相应目录后,再打开需要测试的微信小程序,这时就会生成相应的包,再根据时间进行排序,这样就能很快定位到目标小程序
3、逐一开打目录,可以找到.wxapkg
结尾的包,这里选择主包__APP__.wxapg
解密
新版的PC小程序需要先解密才能进行反编译。
双击打开解密工具,选择对应小程序包的位置,需要注意的是,不能将包拷贝到其他目录,否则会无法获取到小程序的ID,导致解密失败;同时不能删除工具下的 wxpack 目录,这是解密结果的目录
解包
在 wxpack 目录下找到对应同名的小程序包
先 下载 nodejs,一直下一步安装即可
下载解包工具
git clone https://github.com/wanliofficial/wxappUnpacker.git
安装依赖
npm install
解包
node wuWxapkg.js <wx_mini_progranm_file_path>
解包成功后,会得到如下文件
这里仅演示解密主包,如果小程序有其他分包,可以用同样的方法进行解密和解包,但是在反编译分包时,需要带上
-s
参数,如下
node wuWxapkg.js -s=../ xxxx.wxapkg
../
表示结果输出目录
xxxx.wxapkg
表示分包位置
抓包环境搭建
小程序的抓包环境也有非常多的搭建方式,同样可以采用模拟器或者移动端,可以参考APP抓包的方式,这里同样是以PC端为例,搭建一个 Wechat -> Proxifier -> Burp 的抓包环境
将Burp的证书安装到系统中
注意是系统,不是浏览器,否则将抓不到 HTTPS流量
1、访问Burp代理端口,下载证书
(1)安装证书
双击打开证书,点击确定
根据图示依次点击,注意要选择为 受信任的根证书颁发机构
然后一路下一步即可
Proxifier配置
1、配置代理服务器
填入Burp代理的IP和端口,选择协议为 HTTPS
(1)添加规则
由于系统的流量会比较多,如果不设置指定的规则,会有许多干扰流量,不方便后续的渗透测试
点击Browser,选择小程序的主程序,在Windows下文件名为wechatapp.exe
,在 MacOS下名为Mini Program.app
,这里我用 search Everything 搜索文件名,定位到相应位置再打开
选择好应用后,操作点击刚刚配置好的Burp代理服务器
最后再将默认的流量设置为直接连接即可
再把设置的规则 mini-program前面的选框勾上,就能进行抓包了
声明
本文初衷为分享网络安全知识,请勿利用技术做出任何危害网络安全的行为,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,与SpaceSec安全团队及作者无关!
文章中部分学习内容来自于网络,回馈予网络,如涉及版权问题,请联系删除。