文章编号:测试经验
文章日期:2021-09-29
前言
“FSRC经验分享”系列文章,旨在分享焦点安全工作过程中的经验和成果,包括但不限于漏洞分析、运营技巧、SDL推行、等保合规、自研工具等。
欢迎各位安全从业者持续关注~
1微信小程序基础知识
微信小程序包含一个描述整体程序的 app 和多个描述各自页面的 page。一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下:
一个小程序页面由四个文件组成,分别是:
2 环境、工具准备
之前高版本的安卓系统和微信程序不支持抓取小程序的请求包,常规测试经验,需要准备以下环境进行小程序的安全测试
安卓模拟器(安卓版本5.x,推荐使用逍遥模拟器)
微信7.0以下版本
adb工具
monitor.bat工具(方便导出文件,非必须)
nodeJS环境
CrackMinApp工具
BurpSuite抓包工具
在微信PC端上线小程序功能后,也可以直接使用proxifier抓包啦
1、安装Proxifier,添加代理,指向burp/fuddler监听的端口 一定要勾选Use target hostname in proxy request if available
2、设置代理规则微信小程序(wechatapplauncher.exe;wechatwe.exe;wechatapp.exe;wechat.exe)
3 小程序资产收集
资产收集决定了小程序安全评估的覆盖度,常见方式如下:
直接询问开发人员(甲方专属)
在目标网站中查看是否有小程序功能
在微信中使用搜索功能
第三方商情软件查找
详细的资产收集过程在此我们就不做进一步的探讨了
4反编译小程序
对小程序包进行反编译,获取小程序的源代码,进而获取更多的测试面。反编译的方式是从手机中导出wxapkg包,使用CrackMinApp工具直接操作。
/data/data/com.tencent.mm/MicroMsg/{一串随机字符}/appbrand/pkg/
可以通过查找关键字或者直接阅读源码的方式来进一步做测试
5小程序评估重点
小程序的安全漏洞与传统的web漏洞类似,也可能出现SQL注入、XSS、越权等常规漏洞,测试思路是通过抓包反编译等尽可能获取更多的测试面,进而常规漏洞进行测试。
6典型漏洞分析
通过api接口获取encryptedData与iv,微信官方有API可以通过sessionkey、encryptedData与iv获取Data值
将想要登录的手机号替换data包中的值,重新加密,并替换请求包,成功登录对应手机号
此处抓包修改loginid,直接越权
5免责声明
6参考资料
微信小程序反编译(by Mr.K)
https://www.sec-in.com/article/1012