Charles app抓包流程

一、Charles 抓包原理

Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析(这里类似中间人攻击)。配合 Charles 的 SSL 功能,Charles 还可以分析 HTTPS 协议。

二、Charles抓包为什么需要安装证书
Charles 作为一个“中间代理人”,当浏览器和服务器通信时,Charles接收服务器的证书,但动态生成一张证书发送给浏览器,也就是说Charles作为中间代理在浏览器和服务器之间通信,所以通信的数据可以被Charles拦截并解密。由于Charles更改了证书,浏览器校验不通过会给出安全警告,必须安装Charles的证书后才能进行正常访问。

三、手机连接Charles方法

【1】获取IP地址

(1)使用cmd命令行键入ipconfig来获取

charles抓包修改请求 charles抓包步骤_charles抓包修改请求


(2)Charles菜单栏点击help-local IP address,即可查看当前IP地址

charles抓包修改请求 charles抓包步骤_app抓包_02


【2】手机连接代理

(1)打开手机设置-无线局域网-配置代理-选择手动

charles抓包修改请求 charles抓包步骤_charles抓包修改请求_03


(2)在服务器中输入第一步获取到的IP地址

(3)端口获取方法Charles菜单中点击proxy-proxy settings,port框中的值就是端口号,输入该值即可,一般为4位阿拉伯数字

charles抓包修改请求 charles抓包步骤_app抓包_04


(4)输入完成iOS端需存储,安卓端直接返回,确认手机网络连接正常即可,未重新连接的可手动连接上网络

(5)在连接成功后会在PC端出现是否允许连接的提示,点击允许allow即可

charles抓包修改请求 charles抓包步骤_charles抓包流程_05


(6)连接成功后手机端操作Charles可以看到相关网络请求信息,http请求可正常抓包,HTTPS还需要安装证书

charles抓包修改请求 charles抓包步骤_app抓包_06

四、手机抓包安装证书流程

1.IOS端

【1】Safari浏览器打开http://charlesproxy.com/getssl,会弹出证书安装允许和忽略两个提示选项,点击允许安装证书

charles抓包修改请求 charles抓包步骤_charles抓包流程_07

【2】安装证书时需验证密码,输入手机的开机密码即可,验证通过后点击安装

【3】安装成功后会出现已安装描述文件,点击右上角的完成即可

charles抓包修改请求 charles抓包步骤_页面抓包_08


【4】Ios11.0以下的版本到这一步证书就安装完可以使用了

【5】iOS11.X及以上版本,需要在证书信任设置中打开证书开关

charles抓包修改请求 charles抓包步骤_charles抓包流程_09

charles抓包修改请求 charles抓包步骤_抓包_10


【6】证书信任设置路径:设置-通用-关于本机-证书信任设置


2.Android端


安卓端机型较多针对不同的机型安装证书略有差别,介绍两种方法

【1】通用方法(适用于安卓版本较低的手机)

(1)手机自带浏览器打开http://charlesproxy.com/getssl,下载证书,打开下载文件会弹出为整数命名的提示,随意输入一个证书名称即可,最好是英文命名,自己便于识别

charles抓包修改请求 charles抓包步骤_charles抓包修改请求_11

(2)命名后点击确认,就会弹出安装成功的提示,可以在设置-安全-受信任的凭证中查看用户已安装的证书

【2】目前市面上大部分手机,由于安全策略的调整,通用方法可下载证书文件,已经无法安装,需要使用第二种方法

(1)浏览器中下载证书文件(记住存储位置)

(2)打开设置-更多设置-安全—从手机存储安装,此时会打开文件管理器

charles抓包修改请求 charles抓包步骤_页面抓包_12

charles抓包修改请求 charles抓包步骤_app抓包_13

charles抓包修改请求 charles抓包步骤_charles抓包修改请求_14

charles抓包修改请求 charles抓包步骤_charles抓包修改请求_15


(3)在文件管理器中找到下载的证书文件.Crt的文件

(4)点击该文件,验证设备密码验证成功后为证书命名

(5)接下来的步骤和通用方法一样,安装完成后即可(如果安装不成功就用UC浏览器下载证书后缀为pem的文件重新安装下证书在命名)

【3】安装完成可正常抓包了

charles抓包修改请求 charles抓包步骤_页面抓包_16


六、常见问题处理方法


【1】抓取HTTPS 请求时需要在SSL Proxying Settings中Add需要抓取的服务地址

(1)点击Charles菜单中的proxy-SSL

Proxying Settings

(2)设置启用SSL代理能力,add一个服务地址

charles抓包修改请求 charles抓包步骤_app抓包_17


(3)在host中输入要代理的服务器地址,在port中输入端口号

(4)可输入*和443,即可解析大部分的服务地址

(5)添加成功后点击OK即可

charles抓包修改请求 charles抓包步骤_charles抓包流程_18


HTTPS网络请求解析出现unknown

charles抓包修改请求 charles抓包步骤_charles抓包流程_19


(1)检查证书是否安装,是否信任证书

(2)检查Charles设置中https代理解析是否被允许,需将Enable SSL Proxying勾选上

charles抓包修改请求 charles抓包步骤_charles抓包修改请求_20

【3】想要的接口未抓取到

(1)电脑端是否设置了代理

charles抓包修改请求 charles抓包步骤_抓包_21


(2)检查手机与Charles连接是是否正常,判断方法:清除当前请求内容,浏览器打开百度,看是否有请求和返回等信息