[原创] 用Charles Proxy抓包iOS App的数据

charles proxy

查看Charles Proxy文章合集,请点击这里

 使用场景
当我们需要分析 iOS App 发送接收的数据时,需要对App进行抓包。可以在 iOS 上安装抓包工具来完成这个工作,更常见的做法是在PC上安装Charles Proxy之类的软件,再对 iOS 进行一定的配置让这二者关联起来,从而可以在PC上完成抓包工作。毕竟在PC大屏上进行数据分析比触屏的 iOS 设备更为方便。
其基本原理是:Charles Proxy运行起来后,会在PC上启动一个代理服务器,在 iOS 设备上配置通过这个代理服务器来访问网络,那么iOS上的HTTP流量都将走过Charles Proxy,自然也就被Charles Proxy截获了数据。另外,对于HTTPS的加密流量,Charles Proxy还提供了一个SSL证书,把这个证书安装到 iOS 设备上,就可以让 iOS App 发送的HTTPS流量被Charles Proxy 解密,我们就能分析App发送的数据明文。

 软件环境
PC:macOS 13.0.1
Charles Proxy:4.6.2
iOS:15.7.1(其他版本的iOS也行,只不过在某些步骤上有些许差别而已)

 Charles Proxy配置
下面的配置,诸如端口号之类的参数可以视实际情况修改。
依次点击菜单设置:
(1)Proxy→Proxy Settings
charles proxy proxy settings
文章来源:https://www.codelast.com/
charles proxy proxy settings
文章来源:https://www.codelast.com/
(2)Proxy→SSL Proxy Settings
charles proxy ssl proxy settings
文章来源:https://www.codelast.com/
点击上图的“Add”按钮添加你想要抓包数据的域名:
charles proxy ssl proxy settings
Port不用填。
这里只是举一个例子,如果你要抓包的App访问的是其他域名,要把它们都添加进去。
文章来源:https://www.codelast.com/
(3)Proxy→macOS Proxy(勾选)
charles proxy enable macos proxy
文章来源:https://www.codelast.com/

 iOS配置
(1)在iOS上使用Charles Proxy启动的代理服务器来访问网络

编辑WiFi网络连接→配置代理→选择“手动”→填上Charles Proxy的代理服务器IP地址及端口

正如前面的图示,我们已经把端口设置成了8888,所以iOS代理配置的端口就填8888。
那么代理服务器的IP地址是什么?点击Charles Proxy软件的菜单 HelpLocal IP Address,在弹出的对话框中就可以看到IP地址。
文章来源:https://www.codelast.com/
(2)安装Charles Proxy提供的证书
Charles Proxy 给了一个指南,告诉我们在iOS上应该怎么配置,点击菜单 HelpSSL ProxyingInstall Charles Root on a Mobile Device or Remote Browser 会弹出对话框:

文章来源:https://www.codelast.com/
它让我们在移动设备上用浏览器访问 chls.pro/ssl 这个URL,照做:

文章来源:https://www.codelast.com/
点击“允许”,再回到系统“设置”界面,会看到“已下载描述文件”:

文章来源:https://www.codelast.com/
点进去,会看到描述文件的信息:

点击右上角的“安装”,就可以把证书安装到iOS设备上了。
文章来源:https://www.codelast.com/
(3)证书过期的处理
如果按照以上步骤操作之后,Charles Proxy可以抓包,但对HTTPS的数据仍然看不到明文,那么有可能是Charles Proxy的证书过期了,此时你需要点击菜单 HelpSSL ProxyingReset Charles Root Certificate

然后回到iOS上,重新从安装证书开始执行一遍后面的步骤即可。
上面的步骤完成后,回到Charles Proxy软件,会发现它已经可以成功抓包iOS App的数据了,包括HTTPS的流量。

文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤ 
转载需注明出处:codelast.com 
感谢关注我的微信公众号(微信扫一扫):
wechat qrcode of codelast
以及我的微信视频号:

发表评论