《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(7)-Charles苹果手机手机抓包知否知否?

打榜

首先宏哥要拉一下票,希望喜欢宏哥的支持一下,投下你宝贵的6票,投票完成记得抽奖哈,灰常感谢!!!掘金2024年度人气创作者打榜中,快来帮我打榜吧~ activity.juejin.cn/rank/2024/w...

1.登录稀土掘金社区可以获得2票 2.刷题可以获得4票 (1)刷题也比较简单,点击刷题,进入刷题界面,如下图所示:

(2)点击要刷的题目,如下图所示:

(3)进入题目详情内容,点击运行代码图标,即可刷题成功,获得投票次数,如下图所示:

3.投票完成可以进行抽奖

最后要注意每天6票(web)端,可以同时投给一个作者,喜欢宏哥的粉丝和读者可以都投给宏哥,表忠心的时刻到了!!!谢谢各位~~

1.简介

Charles和Fiddler一样不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求。

Charles也能截获iOS设备发出的请求,比如 iPhone、iPad 和 MacBook 等苹果设备。

今天宏哥讲解和分享Charles如何截获苹果移动端发出的 HTTP/HTTPS 请求。

2.环境准备

Charles如果想要实现手机抓包,需要先满足下面 3 个条件:

(1)电脑上安装有Charles抓包工具。

(2)安装有Charles的电脑必须跟手机处在同一个网络里,并且手机网络代理必须设置为Charles,当我们的手机发送数据时必须经过Charles这一层服务。

(3)在Charles中设置好捕获 HTTPS。

1.宏哥的环境是Windows 10版本 64位系统。如下图所示:

2.苹果手机的版本是:14.2.1 。 如下图所示:

3.大致思路步骤

1.电脑本地安装charles证书

2.查看电脑charles的IP和端口号

3.手机连接charles,抓取简单的http

4.charles设置ssl proxy setting

5.手机安装charles证书

4.为什么需要安装Charles的CA证书呢?

1)先理清一些概念的东西:

a)简单来说,https是http的安全版本,超文本传输协议http是以明文发送数据,而https是具有安全性的ssl加密传输协议,可以这么认为https=http+ssl。

b)采用https的服务器必须从CA申请一个用于证明服务器用途类型的证书,证书是唯一性,只用于对应的服务器。客户端要认可这个服务器是否是安全的,可以进行访问或者交易等操作,则需要进行对服务端的验证。

下图是客户端对服务器的验证过程:

c)ssl证书,遵循了ssl协议,在客户端和服务器之间建立了一条ssl安全通道,一般ssl证书都是在验证服务器身份后颁发给客户端。

d)由于ssl技术已建立在所有主要的浏览器和web服务器程序中,因此,仅需安装服务器证书就可以激活ssl协议,所以客户端通过信任该证书,就相当于信任了该主机(服务器)。

下图是客户端和服务端加密通讯的流程:

2)通过以上一个简单的理顺之后,这也就为什么当我们在使用Charles进行抓包的时候需要安装证书,可以通过ssl数字证书中的私用密钥来解译加密的信息,展示在Charles中,但是Charles有一个特殊的地方,就是实际上客户端安装的是Charles的CA证书,然后Charles安装服务器的CA证书,实际上流程还是一样的。

5.苹果手机抓包配置

5.1Charles PC端http配置

http是默认配置好的,要是默认安装完没配置好,我们就自己配置一下,默认的端口号是"8888"我们后面设置手机代理的的时候也要注意这个端口要保持一致。

Charles的配置:这是要打开代理功能,具体操作步骤如下:

1.启动Charles,点击"Proxy-->Proxy Settings",然后在Proxy Settings中填好端口(8888),并且勾选上"Enable transparent HTTP proxying",最后点击"OK"。如下图所示:

2.查看运行Charles的电脑的IP地址,可以在命令行中运行ipconfig或者直接查看网络配置,如下图所示:

3.可以对照一下当前所安装的Charles中的ip地址是否一致,你可以直接在Charles上可以直接查看Charles的IP和端口,点击"Help-->SSL Proxying",然后点击"Install Charles Root Certificate on a Mobile Device or Remote Browser",如下图所示:

5.2Charles PC端SSL(https)配置

无论电脑端还是手机端进行抓取Https的包,都需要先安装对应证书才能使用。具体操作步骤如下:

1.打开charles,点击help-->SSL Proxying-->Install Charles root Certificate 安装证书,如下图所示:

2.点击完"Install Charles root Certificate"后,然后点击"安装证书",如下图所示:

3.点击"安装证书"后,选择存储位置"本地计算机",点击"下一步",如下图所示:

4.证书存储位置选择'将所有的证书都放入下列存储',然后点击证书存储后的"浏览",证书存储选择"受信任的根证书颁发机构",点击"确定",如下图所示:

5.点击"下一步",如下图所示:

6.点击"完成",提示导入成功。如下图所示:

7.点击proxy》 SSL Proxyng Settings。如下图所示:

8.打开界面如下 弄到跟我一样就可以 如果没有*;443自己按add手动添host :*,port:443 。如下图所示:

这样就可以抓取PC端的http和https类型的包了,接下来我们就来进行安卓手机端代理的配置。

5.3苹果手机设置

1.手机和电脑连接到同一Wifi下。

2.手机中设置代理,选择【无线局域网】设置---> 点击【配置代理】-->【手动】,输入服务器和端口,点击存储。(输入本机【IP地址(192.168..**)】以及上面查看到的端口号【8888】)详细步骤如下:

(1)【设置-无线局域网】,如下图所示:

(2)选择要链接的网络,点击右侧"!"号,如下图所示:

(3)进入该网络的配置页面,滑动到最底部,点击配置代理,如下图所示:

(4)选择手动,输入电脑端的ip和端口后点击存储,如下图所示:

3.手机首次连接charles后发起任意http请求会弹出是否信任窗口,点击Allow,如下图所示:

5.4手机安装证书

1手机连接charles代理后,打开safari浏览器,地址栏输入chls.pro/ssl打开网页弹出尝试下载配置文件,点击允许。如下图所示:

2手机设置--->通用--->描述文件与设备管理中查看下载的配置文件,点击charles Proxy CA(xxx)选择安装,如下图所示:

敲黑板!!!

**注意1:Safari浏览器输入这个网址chls.pro/ssl,安装不了证书的情况,需要注意:

  • 设置好手机HTTP代理
  • 电脑上Charles要开着

3手机设置--->通用--->关于本机--->证书信任设置中开启刚刚下载的证书,如下图所示:

至此代理设置完毕,可以在charles抓取Https的请求。

7.小结

Charles和Fiddler一样,一个手机可以安装多个证书,但是每安装的一个证书里面都设置有IP地址,所以:安装的证书和电脑IP是一一对应的,当前的这个证书只能针对某一台电脑使用,更换电脑后,该证书将不能使用,只能重新安装与更换的电脑的IP相同的证书才能使用。

相关推荐
Jouzzy1 小时前
【iOS安全】Dopamine越狱 iPhone X iOS 16.6 (20G75) | 解决Jailbreak failed with error
安全·ios·iphone
瓜子三百克1 小时前
采用sherpa-onnx 实现 ios语音唤起的调研
macos·ios·cocoa
左钦杨2 小时前
IOS CSS3 right transformX 动画卡顿 回弹
前端·ios·css3
努力成为包租婆4 小时前
SDK does not contain ‘libarclite‘ at the path
ios
Zero10171315 小时前
【详解pnpm、npm、yarn区别】
前端·react.js·前端框架
安和昂21 小时前
【iOS】Tagged Pointer
macos·ios·cocoa
球球和皮皮1 天前
Babylon.js学习之路《四、Babylon.js 中的相机(Camera)与视角控制》
javascript·3d·前端框架·babylon.js
AC-PEACE1 天前
小程序初始化加载时间优化 步骤思考与总结
react.js·小程序·前端框架
I烟雨云渊T1 天前
iOS 阅后即焚功能的实现
macos·ios·cocoa
struggle20251 天前
适用于 iOS 的 开源Ultralytics YOLO:应用程序和 Swift 软件包,用于在您自己的 iOS 应用程序中运行 YOLO
yolo·ios·开源·app·swift