iOS Charles 抓包 https 实战并篡改返回数据

2019 年 1 月 4 日 CocoaChina

没需求?No!不想拦截某个软件的接口数据瞧瞧到底干了啥?是否遇到想把返回数据更改下,来测试临界值情况,得找个后端来一起调试下?发个 Post 请求调试只能一步步来码?这些何曾不是 iOS 开发中面临的!只需要拥有它 Charles 抓包,一切都帮你搞定。


 Charles


那么iOS 开发如何抓包呢,原理其实说起来也很简单,就是在客户端给服务器端发消息的时候,中间人(Charles 抓包)截取客户端发送给服务器的请求,然后伪装成客户端与服务器进行通信;将服务器返回给客户端的内容发送给客户端,伪装成服务器与客户端进行通信。先看看下面的图,简单了解下中间人抓包过程:


中间人抓包图


下载安装 Charles 抓包软件。破解版下载:http://www.sdifen.com/   


本文主要讨论两点:iOS开发中利用 Charles 抓包 https 请求和利用 Charles 篡改返回数据。   

1、安装 Charles 证书到电脑。


安装 Charles 证书


2、Charles 证书的信任。先打开钥匙串,看看是否安装成功了没。成功了,双击该证书,点击 "信任",展开后出现如下,选择:始终信任。


始终信任


信任成功后,可以抓取到网页的 https 数据啦。但是要抓取手机设备上的 https 数据,还需要进行下面的代理等操作。


信任 Charles 证书




iPhone 上安装证书并设置网络代理


1、先在 Mac 设备的 Charles 进行如下操作。


iPhone 上安装证书


出现如下提示。这里是告诉我们在设备上进行如下两步操作。


两步操作

2、两步操作具体流程。


      2.1、手动设置网络代理。iPhone Wi-Fi 连接到 Mac 共享的热点上,然后点击连上的共享 Wi-Fi 手动设置代理。输入如上图 "两步操作" 的第 1 步地址。


      2.2、安装 Charles 证书。打开 Safari 浏览器,输入如上图 "两步操作" 的第 2 步地址。按提示安装 Charles 证书。


      2.3、证书信任设置。还有这一步主要是在 iOS10.3 或之后的系统,需要手动信任已下载的证书。(设置 - 通用 - 关于本机 - 证书信任设置)


两步操作具体流程


完成上面操作,最后再设置下SSL Proxying ,就可以利用 Charles 抓包 https 请求了。


选择 Charles 菜单中:Proxy -> SSL Proxying Settings...


  SSL Proxying Settings  


回归到本文需求第一点,对  https 的请求进行抓包!最近负责物流模块的优化任务,先去瞧瞧同类的 "58速运" 是网络层到底发生了些什么。


58 速运


可以看到它返回的是一个 HTML,可以知道这个界面中 "58速运" 采用了网页展示和进行一些交互的操作完成该功能。而我们 app 中使用了原生的开发。


和左边58速运对比


回到本文需求第二点,更改返回数据来测试临界情况!


这种做法可以让一个iOS前端的开发人员独立完成测试而不用拉过来一个后端一起联调。并且各种特殊维度,或是临界的账号也不用再去辛苦找了,仅仅自己在 Charles 上改来改去就可以达到效果了。比如这个地方如果返回了nil 程序会不会崩,直接改 response 就行了。下面是具体操作方案。


请求的父目录一般是域名头,要在这里打断点。注意:不是在下面的单个请求上打断点。


添加 Breakpoints


先正常的打开 Charles 这个页面把玩几下,Charles 就会抓取很多接口和域名分类了。在这里找到你这个页面所属的域名分类应该不难。再次进入调试界面,会通过刚才打断点的那个域名来请求数据,请求就会被断点拦住,如下图所示。


编辑请求数据


Tips:  


1、如果 Mac 上关闭了 Charles,手机要关闭 Wi-Fi 代理,否则可能会导致手机无法正常联网。还有种操作是连接到其他 Wi-Fi 或使用移动蜂窝数据,但是下一次再连接到你共享的 Wi-Fi 热点,没关闭代理还是无法联网的。


2、出现 ?看下 Notes 中是不是 "You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu."  那就看 iPhone 上证书信任设置了不。(设置 - 通用 - 关于本机 - 证书信任设置)


证书没设信任


3、若 Charles 界面一片空白,点击菜单:File -> New Session 即可。


4、瞧不起 Charles?想删 iPhone 里的证书怎办?这小招还是要了解下的,比如换了台更炫的 Mac 电脑呢,是不是得删了这个碍眼文件呢。到 "设置 - 通用 - 描述文件" 里选择 "Charles Proxy..." 文件,移除描述文件即可。


 Was this help article useful ?  Send feedback.


参考:


本公众号转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系本公众号进行修改或删除【联系方式QQ : 3442093904  邮箱:support@cocoachina.com】。文章内容为作者独立观点,不代表本公众号立场。版权归原作者所有,如申请授权请联系作者,因文章侵权本公众号不承担任何法律及连带责任。

---END---

登录查看更多
0

相关内容

超文本传输安全协议是超文本传输协议和 SSL/TLS 的组合,用以提供加密通讯及对网络服务器身份的鉴定。
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【实用书】流数据处理,Streaming Data,219页pdf
专知会员服务
76+阅读 · 2020年4月24日
注意力图神经网络的多标签文本分类
专知会员服务
111+阅读 · 2020年3月28日
【2020新书】Kafka实战:Kafka in Action,209页pdf
专知会员服务
65+阅读 · 2020年3月9日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
【电子书】Flutter实战305页PDF免费下载
专知会员服务
20+阅读 · 2019年11月7日
Webkiller 简单利用
黑白之道
11+阅读 · 2019年6月11日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
抖音爬虫
专知
3+阅读 · 2019年2月11日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
95行代码破解极验滑动验证码(附源码)
FreeBuf
11+阅读 · 2018年5月9日
Generative Adversarial Networks: A Survey and Taxonomy
Arxiv
12+阅读 · 2018年9月5日
Arxiv
11+阅读 · 2018年1月11日
VIP会员
相关VIP内容
相关资讯
Webkiller 简单利用
黑白之道
11+阅读 · 2019年6月11日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
抖音爬虫
专知
3+阅读 · 2019年2月11日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
95行代码破解极验滑动验证码(附源码)
FreeBuf
11+阅读 · 2018年5月9日
Top
微信扫码咨询专知VIP会员