查看原文
其他

小程序逆向和抓包技巧浅析

云天实验室 哆啦安全 2022-05-24

1.抓取移动端项目的前端页面和后台的交互数据,对请求信息和响应内容进行分析

(1).普通手机APP的前端页面和后台一般是通过http请求进行交互

(2).微信小程序的前端页面和后台一般是通过https请求进行交互


以前微信是可以直接信任用户证书,从某个版本以后,这个特性被限制了


Android系统

(1).Android7.0及以下(不影响)


(2).Android7.0以上

微信7.0以下版本(不影响)

微信7.0及以上版本(无法抓包)


iOS系统(不影响)


Android版本大于7.0,微信版本大于等于7.0,是无法抓包的,微信App去掉了信任用户证书的配置。技术上的实现可能是通过android:networkSecurityConfig,xml安全配置代码,如下所示:

<?xml version="1.0" encoding="utf-8"?><network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates overridePins="true" src="system" /> <certificates overridePins="true" src="user" /> </trust-anchors> </base-config></network-security-config>
//清单文件配置<application android:networkSecurityConfig="@xml/network_security_config_debug">


<?xml version="1.0" encoding="utf-8"?><network-security-config> <!-- 允许明文HTTP(非HTTPS)请求 --> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <!-- 其他情况只允许信任系统内置证书 --> <certificates src="system"/> </trust-anchors> </base-config> <!-- 仅Debug包允许用户证书 --> <debug-overrides> <trust-anchors> <certificates src="user"/> </trust-anchors> </debug-overrides></network-security-config>


2.针对Android系统上微信小程序的抓包方案

(1).使用微信版本6.7.3


(2).使用VirtualXposed(实现Android高版本的抓包)

不需要Root权限,不会修改系统属性,安装JustTrustMePlus模块(JustTrustMePlus升级版能够对抗okhttp混淆加密),禁止证书校验,抹掉Xposed特征


(3).Android系统级证书/无需安装任何证书 + 全局代理工具 + 隐藏Root检测 + 隐藏Xposed/Frida等Hook检测 + 安装JustTrustMePlus模块(实现Android高版本的抓包)


(4).VirtualXposed + Google Play版本的微信 + JustTrustMePlus(实现Android高版本的抓包)

Google Play商店拥有更加严格的审核标准,扫描用户应用列表和调用栈检测的代码会通不过商店的审核,使用Google Play商店版微信会更有安全保证(这种方案综合更好)


3.解决配置Charles/Burp Suite/Fiddler代理之后手机无法上网的问题

(1).关闭Windows10防火墙

(2).检查Charles黑白名单,如果没有特别需要可以关闭黑白名单功能

(3).Charles上安装SSL证书(配置Charles的SSL)、手机安装SSL证书(无需安装证书/Android系统证书)


微信小程序逆向分析浅析

App防网络请求被代理抓包比较完整的思路或解决方法


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存