小程序渗透总结

代理设置

微信自带代理

只监听微信流量,杂包流量少。需要先开启监听端口,否则连接失败。

Proxifier代理

微信有多个进程,注意在Proxifier中多加上。

系统代理

设置系统全局代理,抓包工具继续监听。

渗透测试

Fiddler + burp

Fiddler抓包,将burp设置为下游代理。

Fiddler + xray

Fiddler抓包,将Xray设置为下游代理。

Fiddler + Appscan

方法一:导入数据包

Fiddler导出捕获的包: File—Export Sessions—All Sessions—HTTPArchive v1.2

导入Appscan:File— Import—Expolre Data

方法二:设置代理

Web Services(使用浏览器或第三方测试工具)——其他本地客户机——设置代理端口号——下一步

小程序源码获取

源码位置及获取

安卓

 /data/data/com.tencent.mm/MicroMsg/{{一串32位的16进制字符串文件夹}}/appbrand/pkg/ 

获取工具:夜神模拟器+RE文件管理器.apk

确定方法:根据使用时间/全部删除重新打开小程序

压缩存放路径:/storage/emulated/0/SpeedSoftware/Archive

ios

/var/mobile/Containers/Data/Application/{程序 UUID}/Library/WechatPrivate/{⽤户 ID}/WeApp/LocalCache/release/{⼩程序 ID}/ ) 

windows

在windows上使用微信小程序后,其源码存在以下目录中。该目录存在大量以”wx”开头的文件夹,这是小程序的AppID,可以在手机端查看对应小程序的ID,再到Windows端查找。

\WeChat Files\Applet

mac

/Users/{系统用户名}/Library/Containers/com.tencent.xinWeChat/Data/Library/Containers/com.tencent.xinWeChat/Data/Library/Caches/com.tencent.xinWeChat/{微信版本号}/{用户ID}/WeApp/LocalCache/release/{小程序ID}/

解密及解包

小程序项目构成

小程序工程主要包括入口文件app.js,工具配置 `project.config.json`,全局配置 `app.json` 以及页面配置 `page.json` 三类 JSON 配置文件。其中:

app.js文件是微信小程序的入口文件,掌控整个小程序的生命周期,同时有一些全局的属性、变量也存放在这个文件中

`project.config.json` 是项目配置文件主要用于对开发者工具进行个性化配置以及包括小程序项目工程的一些基础配置,所以它不会被“编译”到 `.wxapkg` 包中;

- setting 中保存了编译相关的配置
- projectname 中保存的是项目名称
- appid 中保存的是小程序的账号 ID

`app.json` 是对当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、底部 tab 等;

`page.json` 用于对每一个页面的窗口表现进行配置,页面中配置项会覆盖 `app.json` 的 `window` 中相同的配置项。

在微信开发者工具中开发完小程序后,我们点击“上传”按钮,微信开发者工具会进行“编译”,对 JS 代码进行压缩混淆以及对 wxmlwxss 和资源文件等进行整合打包成一个 .wxapkg 文件上传给微信服务器

- `app-service.js`: 小程序工程中所有 JS 文件的汇总,已被混淆;
- `app-config.json`: 小程序工程 `app.json` 以及各个页面的 JSON 配置文件汇总,可直接查看;
- `page-frame.html`: 所有页面的 `.wxml` 和 `app.wxss` 样式文件的汇总,可读性差,需要还原;
- `*.html`: 包含每个页面对应的 `.wxss` 信息,可读性较好;
- `资源文件`: 各类图片、音频等资源文件

针对编译后的文件再度解包:

xxxxxxxxxx node wuConfig.js <path/to/app-config.json> : 将 app-config.json 中的内容拆分成各个页面所对应的 page.json 和 app.json;​node wuJs.js <path/to/app-service.js> : 将 app-service.js 拆分成一系列原先独立的 JS 文件,并使用 Uglify-ES 美化工具尽可能将代码还原为“编译”前的内容;​node wuWxml.js [-m] <path/to/page-frame.html> : 从 page-frame.html 中提取并还原各页面的 .wxml 和 app.wxss 及公共 .wxss 样式文件;​node wuWxss.js <path/to/unpack_dir> : 该命令参数为 .wxapkg 解包后目录,它将分析并从各个 page.html 中提取还原各页面的 page.wxss 样式文件;

Android

方法一 :wxappUnpacker

命令行工具,安装node.js及以下依赖;

npm install esprima

npm install css-tree

npm install cssbeautify

npm install vm2

npm install uglify-es  //若此依赖报错换为 npm install uglify-js

npm install js-beautify

执行命令

node.exe .\wuWxapkg.js ..\xxxx.wxapkg

方法二:wxapkgconvertor.exe

windows

Windows端的小程序代码是加密的。首先需要进行解密,再解包。解包操作与Android端一样

解密工具:UnpackMiniApp.exe

模拟器与PC数据互传

共享目录:

模拟器目录: mnt->shared->orther

PC目录:C:\Users\%username%\Nox_share;

电脑传模拟器文件方法

1.直接拖拽电脑中任意文件到模拟器主界面中

2.把要移动到模拟器的文件直接放在PC端共享文件夹中

模拟器传电脑文件方法

移动想要传到电脑的文件到模拟器共享文件夹

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇