微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)

微信7.0后如何使用charles抓取 https数据

    • 概要
    • preface
    • 如何抓取 https 包
      • 1. charles 配置
        • 1.1 (可忽略) charles 抓取 http 包,但是 https 页面不能正常加载
      • 2. 安卓手机安装 charles 证书
        • 2.1 小米手机 安装 charles certificate
          • 2.1.1 下载 并安装 UC 浏览器
          • 2.1.2 设置 安卓手机的 wifi 代理 并 通过 UC 浏览器下载 charles 证书
          • 2.1.3 修改 charles 证书名字
          • 2.1.4 从 wifi 高级设置中安装 证书
        • 2.2. 模拟器安装 charles 证书
          • 2.2.1 安装证书
      • 3. 安装 微信 7.0 以前的版本微信
    • supplement
      • wireshark 抓包 的部分过程

概要

最近更新了 charles 4.5.6 可以直接抓取 https 包了。

  1. 通过 降级微信 版本来实现 https 数据抓包
  2. 安卓 怎么安装 charles 证书

preface

这里都是废话,可以跳过去。

学会抓包 ,定位 bug,打别人的脸,嘿嘿嘿

在开发微信 h5 项目, 和 微信小程序的时候, 线上出现 bug 的时候,通过抓包 很方便的定位到 bug 位置。

今天项目出bug( 小程序支付下单账号与支付账号不一致,请核实后再支付 )了,我们的项目是 微信小程序 web-view h5 项目, 我们的项目只是一个 h5页面,但是里面涉及到支付。

简单流程:

小程序 web-view (别的开发小组) ---{传递openid}---> 我们的 h5 项目(接收openid) ---{传递openid和金额}--> 支付页面(别的开发小组,下单和支付)

现在报错 下单账号与支付账号不一致,请核实后再支付 原因是 支付的 openid 和 下单的 openid 不一致。 而下单和支付 都是由别的开发小组来开发的,理论上已经定位到错误位置了。然而对方的开发人员一直说自己的代码没有问题, 不配合查看日志, 我们只能看自己项目的日志。所以我打算通过抓包,确定 接受的 openid传出的 openid 没问题, 就去 熊他一顿(周二就提出的问题,到现在说不知道,一说有问题,就丢 接口文档给我们)。mmp,关键时刻,用charles 去抓包,竟然 unknown, https 包不能抓了, 搞了一上午 ,都不行,其中换了 fiddler, wireshark, burpsuit(这个估计不行)。 没有证据,但是我们的后台, 直接微信群里 怼他了,虽然没有具体的 证据,但是 对方终于行动了, 经过

我一直怀疑是 https 安全性加强了, 所以在想 是不是工具 都不够强了。后来经过 测试可以抓 qq 浏览器的包, 大胆猜测, 不是 https 的问题,而是每个 app 的 “网络框架” 中 对 https 的限制不同。

后来查看了一些 blog ,确认了是 微信 7.0 后,对证书会校验了,估计 用户添加的证书没有通过把。

具体的原因和复杂的解决办法可看 这篇文档

如何抓取 https 包

我的苹果手机升级 7.0.* 以后就也不能抓 https 包了, 现在以 安卓测试机 和 安卓模拟器为例。

1. charles 配置

看之前 blog

1.1 (可忽略) charles 抓取 http 包,但是 https 页面不能正常加载

如果手机设置了 代理, https 数据包抓不到,显示如下,手机页面也加载不出来
微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第1张图片
那么把 proxy - ssl proxy setting 取消选中即可, 这样操作,至少 https 代理的页面可以正常加载。只不过不能查看抓包了。

微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第2张图片

2. 安卓手机安装 charles 证书

2.1 小米手机 安装 charles certificate

很重要: 我之前 尝试过 小米手机安卓 charles 证书,总是不成功。

2.1.1 下载 并安装 UC 浏览器

如果使用其他 browser 如: 原生 浏览器, 下载的证书文件 可能是 getssl.crt 文件。而使用 UC 浏览器下载的文件是不一样。

2.1.2 设置 安卓手机的 wifi 代理 并 通过 UC 浏览器下载 charles 证书

填写 计算机 ip 地址 和 charles 监听的端口, 默认为 8888
微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第3张图片
UC 浏览器输入 chls.pro/ssl ,紧接着下载证书
微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第4张图片
访问 chls.pro/ssl 非正常展示(不显示下载按钮),则刷新一下页面即可
微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第5张图片

2.1.3 修改 charles 证书名字

这一步非常重要

把 下载的 charls-proxy-ss.....pem 修改扩展名为 .cer 文件

2.1.4 从 wifi 高级设置中安装 证书

如果修改 证书名字 ,直接点击可以 安装的话, 就不用走 wifi 安装。

注意小米手机是 在 wifi --> 高级设置 --> 安装证书 中 查找证书,并安装。

点击安装证书 , 找到 UCDownloads 文件夹
微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第6张图片
找到修改后的证书, 点击证书
微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第7张图片

如果出现输入密码,则表示证书可以正确安装

2.2. 模拟器安装 charles 证书

我现在 使用的是 夜深模拟器安装,这样 我感觉会方便些。

2.2.1 安装证书

不能直接点击安装
微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第8张图片

安全 --> 从 SD卡安装 一步一步进行就 ok了微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第9张图片

3. 安装 微信 7.0 以前的版本微信

可以在 通过电脑下载安装,或者…

我使用的是 360 手机助手,下载 历史版本微信来重新安装微信的。

微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第10张图片

supplement

wireshark 抓包 的部分过程

在使用 wireshark 抓包的时候, 发现了 带有 无线网卡的 win10 电脑可以 自身散射 wifi

微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第11张图片
当开启 移动热点的时候 这里会多一张网卡, 在 wireshark 可以 监视这张网卡。
微信7.0 以后 不能抓取 https数据了(安卓手机安装 charles证书正确姿势)_第12张图片

你可能感兴趣的:(抓包)