分类
技术

charles(1):安装及抓包微信小程序

0 下载并安装

建议从官网下载对应版本的软件并安装:Charles 官网下载

1 运行软件并配置代理

首先,在PC运行软件后,

        ① 依次选择  Proxy →  Proxy Seetings 。

        ② 弹出面板后,在HTTP proxy 这个框中填入一个要代理的端口(默认8888即可),然后再勾选 “Enable transparent HTTP proxying”。

        ③ 最后点击面板下方的 OK 。

        ④ 查看当前电脑的IP地址(ipv4),并记下。 win系统可以通过 cmd→ ipconfig查看。

到这里,本阶段PC端的设置就完成了,然后是手机端的设置。

        ① 首先要保证手机和电脑处于同一局域网下(简单的说,建议两个设备连接同一个wifi)。

        ② 手机完成联网后,在wifi列表(WlAN)中找到连接的WiFi名,长按或者点击或者点击名称后的小叹号进入链接wifi的设置页面。

        ③ 在设置中找到【代理】选项并点击 →  选择 【手动】→  弹出填写服务器相关信息的界面。(部分手机可能需要点击“显示高级选项”才能看到【代理】菜单)

        ④ 在 [服务器主机名] 里面填写刚才PC的IP地址。在 [ 服务器端口 ]里面填写刚才在PC设置的代理端口(默认8888即可)。设置完毕点击【保存】。

        ⑤ 保存后,PC端Charles会弹出一个提示:

       点击Allow即可。

至此,第一阶段普通HTTP请求的抓包就配置完成了,手机发出的请求都会在Charles中显示,但是只有HTTP的请求可惜看到详细的请求参数及响应参数。

2 查看https请求的参数及响应

我们知道微信小程序相关的请求在正式环境是强制使用https来通信的,我们有在正式环境抓包的需求,所以我们就来配置一下(以抓包微信小程序请求为例)。

我们基于第一阶段的成果,继续往下走:

首先还是PC端的配置,

        ①  在 PC端的Charles ,依次点击 help →  SSL Proxying →  Install Charles Root Certificate ,弹出证书界面。

        ② 点击证书界面的 【安装证书】→  存储位置选择[ 本地计算机 ] → 【下一步】→  (默认选项)“根据证书类型,自动选择证书存储”【下一步】 →  【完成】,提示“证书导入成功”,点击确定即可。

然后是手机端的配置。

         ① 首先要保证上一阶段的代理仍然是生效的(没有切换WiFi或者关闭代理)。

         ② 然后在任意手机浏览器地址栏输入 [ chls.pro/ssl ]。点击访问后,浏览器会自动弹出一个下载(证书下载),点击下载即可。

              接下来要进行证书的安装,如果你是Android用户,建议查看浏览器下载记录,看一下证书的存储路径。

         ③ Android : 【设置】→  【安全和隐私】(或者类似的安全类菜单item) →  【加密和凭证】(可能不太好找,要有耐心) →  【从存储设备安装】(找到刚才下载的证书)

            →  弹出证书安装器,[证书命名],起一个有辨识度的名字。凭据用途(如果有,默认)[VPN和应用]  →  点击【完成】即可。

            IOS:【设置】→  【通用】→  【关于本机】 →  【证书信任设置】→  选择信任刚才下载的证书即可。

两端的配置工作就完成了。我们的目的是抓取,微信小程序的https请求,并且已知小程序的请求都是走443端口。所以我们开始准备抓取请求。

        ① 在charles 界面选择 Proxy →  SSL Proxy Seetings 。

        ② 打开 设置面板后, 勾选 [Enable SSL Prosxying] →  点击下方的【Add】→  在edit location 面板的 Host 后写 * (默认匹配所有),Port 面板写 443,→  点击【OK】即可。

此时,我们用手机端访问小程序,在Charles找到小程序的数据请求,点击即可看到对应请求的详细参数及响应内容:

至此,小程序的HTTPS请求的抓包过程就算是结束了。可以满足一般性的调试。

3 其他https请求的抓取

从上面的请求我们可以看到,除了这个443端口的请求,别的https的请求的详细信息显示的是unknown,可以到SSL Proxy Seetings  下添加对应的host和proxy即可。

4 其他说明

某些情况小程序正式版不可抓包:Android微信7.0 小程序https抓包问题

问题分析及其他解决思路:听说安卓微信 7.0 不能抓 https?

① 正版的Charles有软件启动 10s 和单次使用不超过30min的限制,如果经常使用的话,建议购买正版。或者搜索使用相关破解工具

② 每切换一个电脑,手机的证书都要在更改相应的代理后重新下载、安装。

③  不使用代理了,记得将手机WiFi的代理设置改为 ‘无’ ,否则无法正常上网,或者部分请求异常。