美文网首页iOS学习开发IOS 开发iOS学习专题
使用Charles抓包并篡改返回数据

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

作者: honey缘木鱼 | 来源:发表于2018-05-08 17:07 被阅读135次

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

    我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3oz5tassr8qog

    相关文章

      网友评论

      本文标题:使用Charles抓包并篡改返回数据

      本文链接:https://www.haomeiwen.com/subject/gxqwrftx.html