我是靠谱客的博主 大方小虾米,最近开发中收集的这篇文章主要介绍使用Charles抓取APP之HTTPS请求,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用Charles抓取APP之HTTPS请求

Charles是一款非常好用的抓包工具,通常使用它来进行APP开发抓包调试,尤其是HTTPS请求。

一、安装Charles
  去官网(https://www.charlesproxy.com/)下载软件并安装。

安装完毕后,开启系统代理(本测试在windows环境进行),菜单->Proxy->Windows Proxy前面打钩,就开启了windows系统代理,可以看到系统的http请求。

windows检测是否开启系统代理,IE->工具->Internet 选项->连接->局域网设置->为 LAN 使用代理服务器->高级,如图1.1所示。
在这里插入图片描述
如果chrome和firefox请求没有被抓包,只需要将其设置成系统代理,或直接手动设置代理地址:127.0.0.1:8888。

二、请求过滤
  当只需要观察目标请求数据时,可以过滤其他请求数据。

1、设置方法一: Proxy->Recording Settings->Include,点击Add添加需要观测的地址即可,如图2.1所示。

在这里插入图片描述
2、设置方法二:在Sequence界面中输入Filter地址,如图2.2所示。

3、设置方法三:临时过滤,右击需要观察的请求,选择Focus,然后在Sequence界面右侧勾选Focused单选框,即可临时过滤观察请求,如图2.2所示。
在这里插入图片描述

三、抓取APP请求数据
  要抓取APP请求数据,必须让APP使用与charles所在pc同一网段的网络,让APP请求经过charles代理。

1、开启并设置APP代理

操作步骤:

1) 开启charles代理,设置:Proxy->Proxy Sesstings->Proxied,设置Port=8888,并选择"Enable transparent HTTP proxying"单选框,开启透明代理。

2) 设置APP代理,在对应wifi中设置代理,地址为charles所在pc的ip地址,端口为8888。

开启后,即可抓取APP的http请求。

2、抓取APP的https请求

在文章《HTTPS到底是个什么鬼?》中,我们已经分析了https的相关资料,https存在的目的就是为了保障通讯数据的隐私性。那么需要抓取https数据,必须安装charles的CA证书,让charles在https交互中起到中间人监听的目的。

操作步骤:选择Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser,看到弹出如图3.1对话框。 **
在这里插入图片描述
 根据提示好像需要设置APP的代理为192.168.155.1:8888,然实际经笔者多次尝试,发现此步骤不需要修改APP的代理(仍为之前的APP代理地址),根据提示修改代理后反而无法打开页面。然后APP浏览器访问地址:chls.pro/ssl,根据提示下载安装ca证书即可,如图3.2所示。 
在这里插入图片描述
 有些安卓机型可能只是下载 pem 证书,无法直接安装证书,此时需要在“设置”->“安全和隐私”->“更多安全设置”->“从 SD 卡安装”,选择刚才下载的 pem 证书安装即可。

IOS 系统要记得开启证书信任。

安装完毕后,charles默认并不截取https内容,在需要截取的https请求上右击,选择SSL Proxy菜单,即可截取https请求。

3、抓取pc的https请求

选择Help->SSL Proxying->Install Charles Root Certificate,下载安装证书即可。   
四、进行网络调试
1、模拟慢速网络环境

有时候需要测试APP在慢网速情况下的表现,刚好charles提供了此功能。点击Proxy->Throttle Sessing选项,勾选上Enable Throttling选项,下方可以选择需要模拟的网速,包含常见的3G和4G,如图4.1所示。
在这里插入图片描述
2、修改请求参数

chales提供了调试工具,可以修改请求参数,在Sequence视图下,选择需要修改的请求,点击Edit即可,如图4.2所示。
在这里插入图片描述
3、简单对服务器接口进行压力测试

charles提供了多线程并发发起请求,可以简单测试服务器接口的并发表现。开启方法,右击需要发送的请求,选择Repeat Advanced,设置并发线程数以及每个线程执行的次数即可,如图4.3所示。
在这里插入图片描述

4、修改服务器响应内容

charles提供了Map、Rewrite和Beakpoints来调试修改服务器响应内容,这三个功能都可以修改服务器响应的内容,他们区别是:① Map功能适合长期调试修改某一接口到某地址(网络文件或本地文件),可以直接按要求事先指定文件内容;② Rewrite功能可以对网络请求进行一些正则替换,适合相同正则处理多个同类请求;③ Breakpoints功能可以进行临时断点调试,允许求改请求和响应内容。

  1. Map功能

右键请求,可以看到有Map Local和Map Remote,Map Local可以将请求指定到本地文件,Map Remote可以将请求指定到远程文件地址。可以使用右键->Save Response来迅速保存请求响应,然后可以对响应内容进行修改,其中Map Local设置如图4.4所示。

在这里插入图片描述
2) Rewrite功能

可以实现设置Rewrite规则,然后再对需要的请求开启Rewrite替换。设置Rewrite规则步骤,Tools->Rewrite Settings,勾选Enable Rewrite选项,具体设置界面如图4.5所示。
  在这里插入图片描述
然后对需要进行Rewrite的请求,只需开启就行,开启步骤如图4.6所示。

在这里插入图片描述

  1. Breakpoints功能

使用Breakpoints可以临时调试请求,允许修改请求和响应参数,对于需要开启断点调试的请求,右键勾选Breakpoints选项即可,使用界面如图4.7所示。

在这里插入图片描述

五、常见问题

  1. APP已安装charles证书,抓取https请求时,显示"unknown",如图5.1所示。
    在这里插入图片描述

最后

以上就是大方小虾米为你收集整理的使用Charles抓取APP之HTTPS请求的全部内容,希望文章能够帮你解决使用Charles抓取APP之HTTPS请求所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部