《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(7)-Charles苹果手机手机抓包知否知否?(爆肝是什么意思?这个梗怎么来的?)
 南窗  分类:IT技术  人气:136  回帖:0  发布于1年前 收藏

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相同的证书才能使用。

讨论这个帖子(0)垃圾回帖将一律封号处理……