使用Charles抓包并篡改返回数据

      charles又名青花瓷,在iOS开发中的抓包中具有重要作用。最大的三点用处,一就是拦截别人软件的发送的请求和后端接口,练习开发。二是自己后端返回的response拦截修改后再接收以达到测试临界数据的作用。三写脚本重复拦截抓取别人的数据.

开始之前的准备工作

1.首先安装一下这个软件

这个相信很多人电脑里应该都安装了,没安装的搜charles破解版也能很容易搜到。如果没安装java环境,首次进入charles会提示让你安装java包得,直接给你链接是苹果官网的,去下一个一键安装就行了。下载安装地址IOS客户端和安卓客户端不同,下面以IOS客户端为例:

安装成功

2.设置代理

打开偏好设置----->网络---->可以查到自己这个电脑在现在这个wifi里的IP地址,比如我现在这个就是192.168.0.103(建议最好用私人网络,用公司网络的话可能会有限制会出现没反应的问题)

电脑网络

然后找到自己手机也连着这个同名的wifi,然后选中右边的蓝色

设置代理

3.打开charles工具,这时候你的手机上网的过程中就要经过你的电脑了。刚用手机打开一个联网的程序,你的电脑上应该会显示一个弹窗问你【allow】还是【deny】肯定不能拒绝啊就点allow吧。这个只有第一次才弹窗,图没截上,你到时候看见肯定能看懂的。点了同意之后你手机发出的每一个请求都会被拦截出痕迹。

设置代理服务

在手机上安装证书提示:

手机安装证书

证书地址

打开苹果手机的safari浏览器,输入网址:https:chls.pro/ssl  如图:

点击允许

安装

4.关闭charles ,重新启动,打开后运行手机就可以清楚看到:

数据

到此就已经完成了一次完整的,拉取接口,和获得数据。

这里有两点我想说下:

①就是如果这个App发的请求加密了或是RSA什么的,这个就算拦截了你也弄不到数据。没有做任何加密的App,所以可以抓取到数据。以前试了拦截百度医生的就不行。他设置的是一分钟内能获取到数据,超过了1分钟这个复制过来的接口就取不到数据了。怀疑可能是用的HMAC方法加密,并且在里面加入了时间判断。32分和33分发出的请求经过编码后是不一样的,后台可能做了容错,会把32分和31分都和你判断下,只要有一个对上就让你过,但是超过了整整一分钟后是肯定获取不到数据了。

②就是很多比较大型的网站,一般会开放一个开发者平台,里面注册开发者账号后会向你公开一个接口文档,你不用再去费事的拦截了。像新浪微博和大众点评都有开发者平台。

篡改后台返回数据

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

1.打开青花瓷切换成结构页面。

结构页面

这里可以看到断点和调试信息:

调试断点

然后找一个我们公司的页面。这个页面本来应该返回是这样的:下图:

你先正常的打开这个页面把玩几下,这个青花瓷就会抓取很多接口和域名分类了。在这里找到你这个页面所属的域名分类应该不难。然后打上断点。这里要注意是在域名上打断点而不是在下面的单个请求上打断点。(单个请求打断点,更该数据没有任何用途)

再次用手机进入这个页面,就会通过你刚才打断点的那个域名来请求数据,就会被断点拦住,如下图所示。

断点

修改

把返回数据 8,3,0,0,0改为8,8,8,8,8,然后点击Execute单步执行,就会看到修改后的页面了,然后再次点击下方的Execute单步执行,更改后的数据就会像正常返回回来的数据那样显示到,APP的页面上展示。

成功显示

能来到这一步就说明已经完整的掌握了用青花瓷篡改返回数据测试App的技术。

这么做的意义:

这里只是简单的更改了一些数字,在页面显示更加直观。实际的操作中,你可以经常用来把某些值改为临界情况以看到App在处理这些临界状况时的反应,这样比找那些临界数据的测试账号成本要低得多。也可以把一些可能不会反回数值的字段找到,直接将里面的值删成nil,看看会不会报异常等等。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

工具 | Python Web 开发的十个框架

Python 是一门动态、面向对象语言。其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性。除了语言本身的设计目的之外,Python标准 ...

27010
来自专栏后端之路

使用idea调试前端页面

对于前端同学来说,特别是同时需要做后端的前端同学,idea和chrome两个debugger都要开着的时候比较痛苦 idea提供了调试chrome页面的插件 ?...

42510
来自专栏琯琯博客

awesome-sysadmin-cn资源

系统管理员 资源列表,内容包括:备份/克隆软件、云计算/云存储、协作软件、配置管理、日志管理、监控、项目管理 备份 备份软件 Amanda:客户端-服务器模型备...

58212
来自专栏林冠宏的技术文章

独立开发 一个社交 APP 的架构分享 (已实现)

(本博客为原创:https://cloud.tencent.com/developer/user/1148436/activities) My BananaCl...

5768
来自专栏移动端开发

Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程

      最近给游戏添加了苹果的内购,这一块的东西也是刚刚做完,总结一下,其实这里不管是游戏还是我们普通的App添加内购这一块的东西都是差不多的,多出来的部分...

1193
来自专栏AI科技评论

干货 | 马蜂窝数据被扒光, 用 Python 爬取网页信息 4 分钟就能搞定

图片来自https://www.freestock.com/free-photos/illustration-english-window-blue-sky-c...

1273
来自专栏java 成神之路

iostat 命令详解

3719
来自专栏FreeBuf

新曝WordPress REST API内容注入漏洞详解

近日,来自Sucuri的研究人员发现WordPress存在重大漏洞,漏洞在于WordpressREST API,成功利用该漏洞可删除页面或修改页面内容。 官方很...

2006
来自专栏AI研习社

马蜂窝数据被扒光, 用 Python 爬取网页信息 4 分钟就能搞定

图片来自https://www.freestock.com/free-photos/illustration-english-window-blue-sky-c...

1101
来自专栏星流全栈

Meteor1.3七日谈 — Mantra核心简介

1213

扫码关注云+社区