内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

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

2018-06-08 18:56 出处:清屏网 人气: 评论(0

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,看看会不会报异常等等。

分享给小伙伴们:
本文标签: Charles抓包

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号