app|微信小程序|公众号测试环境搭建笔记
app抓包
超级全:https://cloud.tencent.com/developer/article/2316324
burpsuite
配置证书有时候可以直接安装,但有时候(安卓7.0以上)我们需要将证书命名为计算出的哈希值后缀.0导入到根证书目录:/system/etc/security/cacerts 让系统默认可信任。
httpcanary
https://blog.csdn.net/weixin_53891182/article/details/124739048
下载号apk拖到模拟器里即可
安装证书
模拟器设置里看是否是root模式
httpcanary设置-》SSL证书设置-》导出根证书-》.0(root)/.pem文件(未root)(直接用他装也可以,不一定要导出)
但.0的证书在收集的设置里是导不进去的,我们选择pem
手机设置,然后 找到并点击“安全”–>“更多安全设置”–>凭据储存下的“从手机储存安装”–>CA证书(不同手机系统这步可能不完全相同,但都大同小异按这几个关键词找一下或者直接搜索)
安装完成后,可以在用户凭据里看到看到,感觉没有哪个.0不一定抓的全,但也能抓到就是了
还是用adb传上去把
# 打开adb 脚本 |
这里我发现他已经装好了,那就不一步一步试了
Charles
https://blog.csdn.net/qq_45005145/article/details/141132846
注册码生成:https://inused.github.io/pages/file/tool/CharlesKeygen.html
抓本地的包,我就不演示了,演示下抓手机的包把
设置代理,在 Proxy — Proxy Settings
( 注意:此时我的Windows Proxy是去掉对勾的,因为这里我是想在PC端抓手机端的包,所以没必要打开电脑的本地代理
)
填入代理端口 4444
(或者自定义,但不能和系统已占用端口冲突),并且勾上 Support HTTP/2
和 Enable transparent HTTP proxying
,点击右下角 OK 即可
然后分别在 PC 端和手机端安装证书 选择 Help — SSL Proxying — Install Charles Root Certificate
就可以下载安装上 PC 端了
PC的就是当前用户,受信任的证书颁发机构
接下来再给手机端安装证书,步骤如下: 选择 Help — SSL Proxying — Install Charles Root Certificate on a Mobile Device or Remote Browser
然后把代理设置成这个,这里敲错了,应该是147的
然后和httpcanary一样,在手机里安装即可
它也是安装在 用户
那里,但是由于我的设备是已经 root 了,要把这个证书安装在 系统
那里才能进行抓取 HTTPS 流量,但我这里好像已经行抓了,不懂为什么,移动的方法可以用MT也可以用ADB
charles还可以结合上burp使用
有时候包会放的特别慢,可能是开了这个,关掉就就好
Postern + Charles + BP
在实际抓手机 App 包场景中,有很多种方案,经典的就是 Fiddler
、 Burpsuite
,但是 Fiddler
、 Burpsuite
会遇到一个问题,如果 App 为了防止中间人抓包,特意设置了不走代理这个选项,那单独直接用 Fiddler
、 Burpsuite
这些抓包工具就不能抓包的,那总不可能说不能抓包就认为目标系统很安全吧?为了抓到完整的包,于是就衍生出 Postern + Charles
这个组合,是因为 Charles
没有直接监听到 App,Charles
是监听到了 Postern
上,Postern
就是一个VPN
,所以 App 设置不走代理也没用,它是通过 VPN 将所有流量转发到 Charles 的 socks
代理,再打开 Charles 的 External Proxy Server
— (外部代理服务器)转发到 Burpsuite,从而实施中间人抓包
配置Charles
在 Proxy — Proxy Settings ,勾选 Enable SOCKS proxy 进行设置 SOCKS 代理(按照下图的操作),端口号我这里设置8889(或者自定义,但不能和系统已占用端口冲突)
配置postern
左上角-》配置代理
配置规则
然后开启vpn,一般第一次连上会弹出这个,点击allow即可
有时候抓包不成功,可能是规则太多了,要把那些删了,或者说调整规则顺序
小程序抓包
Proxfier+Burp+PC端wechat
配置proxfier
首先需要找到微信小程序的运行文件 WeChatAppEx 的物理路径,然后把此文件添加到 Proxifier 的代理规则中。这里多说一下,如果也想要抓取微信内置浏览器的数据包的话,需要找到 WechatBrowser 的物理路径。找这两个的文件的物理路径可以通过任务管理器来找到。比如小程序 WeChatAppEx 文件,首先打开任意一个小程序,打开任务管理器找到以小程序命名的进程名称 ,右键打开文件所在的位置来确定其物理路径,这里以打开欢乐斗地主为例,如下图。使用微信内置浏览器打开任意网页,用同样的方法可以找到 WechatBrowser 的物理路径。
WeChatAppEx 默认路径:%%%Roaming\Tencent\WeChat\XPlugin\Plugins\RadiumWMPF\11253\extracted\runtime(不一定是11253,这个数字会有差异) |
对于找路径其实有个更简单的方法,就是使用 everything 这个搜索软件直接搜索 WeChatAppEx 和 WechatBrowser 文件,直接找到其物理路径。默认情况下都是只有一个的,如果有多个的话,需要用上述方法去确认一下具体使用的是哪个。
Proxifier 配置:开启 HTTP 代理配置功能,这个设置默认是关闭的。
配置代理服务器:端口保持和 burpsuite 的监听端口一致就行,下面协议选择 https 。
配置代理规则:按照下图的数字顺序进行操作,点击第3步之后定位到上面的物理路径,选择 WeChatAppEx 或 WechatBrowser 的可执行文件 。一定要记得点两个OK按钮进行保存设置。
这里有个小技巧,就是在测试过程中很多时候都是不想抓取baidu.com、qq.com等这类的域名流量,一旦这类的数据包很多的话,很影响测试。所以可以加个规则,让这类的域名或IP直接直连,从而不走设置的代理,这样就能减少好多无用数据包,方便测试。
另一个注意的点就是多个规则的排序问题了。选中一个规则后,使用右边的按钮可以进行调整顺序,类似于优先级。如果设置了上步不走代理的规则,一定要保证这个规则是在微信小程序规则的上面,要不然等同于没设置。
设置完之后就可以正常的使用burpsuite抓取小程序的数据包了。在使用 Proxifier 这个代理软件的同时,尽量不要去使用其他的V2、SSR等代理软件,以免发生冲突。
BP
如果抓不到可能是走了代理,去network里把use socks proxy关了