前言:
故事起源于技术总监让我测一个小程序,那刚开始肯定是抓包了,直接拿出fidder神器,再将流量导入burp,好家伙 数据包加密的。
00x1:
没办法,打工人得乖乖把数据包解密,那能怎么办了,只能小程序逆向看看了。得先找到缓存到本地的小程序包路径,打开微信设置即可看到,然后查看微信PC安装目录WeChat FilesWeChat FilesApplet
00x2:
下面就是小程序的源码了,是不是很多,没事只要把下面所有的都删除,然后重新打开小程序,里面再出现的就是你要测试的小程序源码了,这里我是根据时间判断出来了我要测试的小程序。
00x3:
发现该小程序的主包和分包,分别对主包和分包解密就行,这边就演示主包解密就可以了
00x4:
先通过解密软件修改一下主包才能解密(需要node环境)。
https://pan.baidu.com/s/1p-wnX-mXr-Du0iJK_dT8RQ
提取码:z06a
00x5:将主包放入该解密软件修改一下
00x6:然后解密的包自动到 wxpack 目录下面这个包里面来了,后缀名为wxapkg
00x7:在用反编译工具,项目地址来自于:
https://github.com/xuedingmiaojun/wxappUnpacker
进入wxappUnpacker-master反编译工具里面进行逆向(需要node环境)
00x8:
该目录wxappUnpacker-master下面cmd执行解包命令:
node wuWxapkg.js ..wxpackwx24c20b83c10c6028.wxapkg
命令会把反编译后的文件夹放到wxpack 同级目录中
wx24c20b83c10c6028里面则是小程序的源码
00x9:
然后可以根据小程序的源码对数据包看看能不能解密,多看看js,然后在一则目录下面发现了aesUtil.js 说明数据包很有可能是aes加密,那就好解密了,只要有密钥和偏移量即可
public.js发现了数据包加密的方式,发现了其中最关键的函数e.AES.decrypt,则为aes加密,其中p为请求数据,r为key,iv为偏移量,mode和padding为具体的加密方式。没怎么系统学过js,凭借一个函数的解释则推出:key=f657 iv=72 加密方式CBC pk7
然后拿着数据包再解密网站解密,发现解密不了
后面再看了看js代码,发现数据包是hex了一下,所以解密输出为hex
后面解密成功
解出来就可以开心的渗透了,但是勒渗透改数据包老是要加密解密,所以这里推荐插件(偷偷嫖技术总监发的文章)
插件下载:https://github.com/f0ng/autoDecode
里面自带加解密,发现成功加解密
然后只要设置加解密域名就可以在模块看到明文进行渗透
不敢用渗透的图怕说泄密就偷了一个意思意思
00x11:
还有告诫各位大佬千万别谈异地恋,因为超过50公里就会分手,别问那么多,问就是超过50公里我的小电驴就没电了。
原文始发于微信公众号(CtrlC安全实验室):记一次小程序逆向和数据包解密
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论