【渗透测试】Wechat small program Unpack

0x01 前言

这种unpack方法早在一年之前就有up主发过文章,偶然之间看到顺手试了一下做个记录

原文地址:

1
<https://www.bilibili.com/read/cv9986715>

0x02 正文部分

用到的工具:

1
2
3
4
5
node
npm
mumu模拟器
Root Exploer文件浏览器
wxappUnpacker

首先,在模拟器安装好RE文件浏览器

之后登陆微信,随便打开一个小程序

之后打开RE文件浏览器,会提示需要root权限,这里就是使用模拟器的用处,真机普通情况下无法root

Untitled

点击允许之后,会进入RE文件浏览器页面

微信小程序的默认文件位置:

1
/data/data/com.tencent.mm/MicroMsg/(一串长字符)/appbrand/pkg

Untitled

这里因为之前用过小程序导致文件比较多,如果是第一次使用这个文件夹是空的,或者也可以根据时间来筛选,一般是两个数据包,一个主包一个子包

将两个数据包打包发送到本地

接下来安装wxappUnpacker

1
<https://github.com/xuedingmiaojun/wxappUnpacker>

根据安装文档

1
2
3
4
5
6
7
8
9
10
11
12
13
npm install

npm install esprima

npm install css-tree

npm install cssbeautify

npm install vm2

npm install uglify-es

npm install js-beautify

这里有一个小插曲,npm install 依赖的时候,总是报错:

1
2
3
npm ERR! code ECONNREFUSED
npm ERR! errno ECONNREFUSED
npm ERR! FetchError: request to <http://registry.npmjs.org/vm2> failed, reason:connect ECONNREFUSED 127.0.0.1:1181

StackOverflow找到了解决办法:

1
2
3
npm config set proxy null
npm config set https-proxy null
npm config set registry <http://registry.npmjs.org/>

将npm代理配置之后再次install,就可以正常安装了。

之后,开始进行解包:

1
node wuWxapkg.js xxxx.wxapkg

Untitled

打开解包的文件夹

Untitled

此时就可以对小程序js或html文件进行分析,进一步进行渗透

Untitled