第十九天
本课意义
1.如何获取到目标小程序信息
2.如何从小程序中提取资产信息
一、Web&备案信息&单位名称中发现小程序
1.国内主流小程序平台
-
微信
-
百度
-
支付宝
-
抖音头条
2.小程序结构
1.主体结构
小程序包含一个描述整体程序的app和多个描述各自页面的page
一个小程序主体部分(即APP)由三个文件组成,必须放在项目的根目录,如下:
文件 | 必需 | 作用 |
---|---|---|
app.js | 是 | 小程序逻辑 |
app.json | 是 | 小程序公共配置 |
app.wxss | 否 | 小程序公共样式表 |
2.一个小程序页面由四个文件组成,分别是:
xxx.js | 页面逻辑 |
---|---|
xxx.json | 页面配置 |
xxx.wxml | 页面结构 |
xxx.wxss | 页面样式 |
3.项目整体目录结构
pages | 页面文件夹 |
---|---|
index | 首页 |
logs | 日志 |
utils | |
util | 工具类(mina框架自动生成,你也可以建立一个:api) |
app.js | 入口js(类似于java类中的main方法)、全局js |
app.json | 全局配置文件 |
app.wxss | 全局样式文件 |
project.config.json | 跟你在详情中勾选的配置一样 |
sitemap.json | 用来配置小程序及其页面是否允许被微信索引 |
3.小程序体验-凡科建站&模版测试上线
1.搭建小程序
测试:https://qz.fkw.com/
参考:https://blog.csdn.net/qq_52445443/article/details/122351865
2.小程序源码反编译
参考官方文档安装环境
复杂操作:https://www.cnblogs.com/oodcloud/p/16964878.html
简单工具:http://xcx.siqingw.top/
3.微信官方开发工具
https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html
二、小程序资产静态提取&动态抓包&动态调试
小程序逆向-解包反编译&动态调试&架构
信息收集
- 小程序抓包-Proxifier&BurpSuite联动
- 对抓到的IP或域名进行Web安全测试
- 对抓到的IP或域名进行API安全测试
- 对抓到的IP或域名进行端口服务测试
寻找漏洞
-
对源码架构进行分析
-
更多的资产信息
-
敏感的配置信息
-
未授权访问测试
-
源码中的安全问题
三、环境复现
1.小程序获取-各大平台&关键字搜索
各大平台直接搜索
2.小程序体验-凡科建站&模版测试上线
1.打开凡科建站
2.选择模板后点击预览
3.点击前往授权,选择授权的小程序平台
4.因为没有资质和注册,点击快速创建试用小程序进行测试就行
5.点击绑定体验者后输入体验者的微信号
6.去微信打开查看搭建的小程序的效果
3.小程序抓包-Proxifier&BurpSuite联动
1.打开Burp设置好代理,打开proxifier设置好代理服务器和代理规则,规则要指向微信的exe程序位置
2.设置好之后打开小程序进行抓包
4.程序逆向-解包反编译&动态调试&架构
1.第一个小程序(需要购买)
1.打开小程序助手,点击解包文件
2.打开小程序安装目录,在微信文件存储位置文件下的Applet,为了更好判断,删除多余无用的小程序缓存
3.选择一个小程序运行,运行完后会在Applet目录下产生一个新的文件夹
4.回到小程序助手打开小程序所在的目录,如果有多个wxapkg文件就多选进行打开,保证APP的那个在第一个
5.显示解包成功之后点击刷新反编译包,选中刚刚选择的解包的文件
6.然后根据小程序界面的美观程度选择新旧版反编译
7.点击反编译之后会生成一个文件夹,反编译的源码就在这个文件夹下
8.打开微信开发者工具,打开刚刚反编译后的源码
9.点击右上角的详情,点击本地设置,取消勾选将JS编译成ES5
10.点击可视化,对预览界面进行点击查看调试器的信息
11.选择pages文件夹后点击list目录下的list.wxml查看预览页面变化,然后逐一点开各个文件夹下的.wxml进行查看
12.再打开Burp进行抓包,根据显示的URL进入微信开发者工具index文件夹下的JS文件进行搜索查找
13.再进行查找,在wxml文件中可能泄露图标所在的URL
2.第二个小程序
1.寻找其他小程序进行测试
2.遍历目录查看预览界面样式,寻找有没有存在未授权访问
3.搜索源码中的敏感字段,例如accesskey,看是否存在OSS资源信息
4.打开小程序助手,点击抓取素材工具,运行图片抓取,可以搜集一些域名信息