如何在手机端抓https的报文

背景

魔都啥情况也算众所周知了,每天5点多起床加购物车,抢菜,失败的循环已经持续了2个月了,作为一个IT从业者,只能想办法从代码层面来解决抢菜难的问题了。
目前通过代码抢菜的方式主要分为2种,第一种是测试们都很熟悉的,利用手机自动化测试的方式,进行自动抢菜,说白了就是通过代码模拟你在手机端按键,可供选择的框架有Appium和Calabash或AthRun等,主要因为这几个对IOS和Android都支持比较好。该方式也挺方便,且安全,因为对于抢菜平台来说,你最多也就是个筋膜枪选手,而且是个,但性能相对会差一点,因为受限于手机性能。
第二种方式是我目前主要用的,就是直接通过接口进行买菜,但目前该方法有个很大的问题就是,容易被封号,对于平台来说,人家能判断你请求来源的地方太多了,agent, deviceid, 各种http头,请求频率等。还有个问题,就是如何获取抢菜的接口呢?答案是,抓包。

如何抓包

众所周知,https数据包是加密过的,是“无法抓包的”,但在进行App测试或定位线上问题时,经常会遇到抓取https数据包的需求,对于这种需求,一般在windows上会使用fiddler,Mac上使用Charles,通过替换请求证书的方式,抓取https的报文。

抓包原理
  • 在直联网络以外,新增一个代理,使用该代理进行TLS/SSL握手。
  • 在代理上使用自己的根证书,有了自己的根证书,就可以进行解密。
操作步骤

由于windows在公司,目前家里只有mac,那就使用mac + charles + iphone13 的方式进行抓包

首先设置代理

proxy - proxy settings 配置代理,让所有请求都经过charles.

开启SSL代理

proxy-ssl proxying settings 开启ssl代理,让所有的ssl的握手操作,均由charles进行。

手机设置代理

在手机无线中配置手动代理,输入安装Charles的电脑的网络地址,端口填8888,ios直接在wifi里点击代理即可。

证书安装

先需要在服务端安装根证书,即在mac端安装一个证书。

然后打开手机,由于之前设置了代理,所有请求都会先经过charles, 打开游览器,输入 chls.pro/ssl ,下载证书,然后点击下载的证书,安装证书。
安装好,点击手机的设置->通用->关于本机->证书信任设置 进行证书信任,让https请求可以基于该证书进行。

抓包

然后手机点开需要的抢菜软件,就能看到对应的数据包了,比如想要的header里的各种token等,这里就不截图了,找个其他的做个简单的示范:

个人公众号, 分享一些日常开发,运维工作中的日常以及一些学习感悟,欢迎大家互相学习,交流

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值