0x01 准备工作
在进行微信小程序渗透测试之前,需要准备以下工具和环境:
- Burp Suite: 用于拦截和分析小程序与服务器之间的通信。
- 模拟器(需安装微信): 用于模拟手机环境,方便调试和发送数据包。
- Node.js: 用于运行wxappUnpacker,进行小程序包的反编译。
- wxappUnpacker: 用于解压和反编译小程序的数据包。
- Root Explorer: 用于浏览和管理模拟器上的文件系统。
0x02 操作流程
步骤1: 配置Burp Suite和模拟器
- 配置Burp Suite,设置代理端口,并确保模拟器导入了Burp的CA证书。在模拟器的WLAN设置中,输入物理机的IP和一个未被占用的端口,用于Burp的代理。
步骤2: 获取小程序数据包
- 打开微信,随便点击一个小程序进入小程序主界面,然后打开文件管理器。
- 在
/data/data/com.tencent.mm/MicroMsg/xxxxxxx/appbrand/pkg/
目录下,找到刚才访问小程序时生成的两个数据包。
步骤3: 反编译小程序包
将数据包上传至物理机,压缩包含子包和主包的文件夹。
使用wxappUnpacker进行反编译。在wxappUnpacker的目录中运行以下命令安装依赖:
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
执行反编译命令,例如:
<code>node wuWxapkg.js C:\xxxxxx\xxxxxx\_-1971317095_1.wxapkg</code>
反编译完成后,对所有的JS和HTML文件进行漏洞分析,寻找潜在的安全问题。
步骤4: SQL注入分析
- 通过信息收集,了解小程序所用技术栈和服务,发现可能存在的漏洞。
- 通过JS分析,发现一个用于判断手机号是否注册的接口。
- 使用单引号和’–(单引号+mssql闭合)测试发现返回包不同。
- 使用单个单引号报错,而使用 单引号跟闭合返回正确数据包,判断存在SQL注入。
步骤5: 利用SQL注入漏洞
- 判断注入点通过单引号闭合,验证存在SQL注入。
- 通过注入点获取后台账号密码,发现该程序是一个通用系统。
- 利用获取的后台账号密码,进行渗透测试。
这些步骤侧重于微信小程序的反编译和SQL注入漏洞的挖掘。对于漏洞的利用,需要按照通用的渗透测试思路进行进一步分析和测试。
© 版权声明
THE END
暂无评论内容