利用charles 抓取ios app的https数据包-----软件配置和抓取步骤

背景:最近在做数据缓存相关的工作;我们的设备是放在高铁里面的,主要是提供wifi服务。然而我们的wifi是由sim卡4g网络拨号提供的,用户在上网时需要下载我们的APP:掌上高铁;所以领导提出一个要求,要在自己服务器做一个缓存,用户在ios  app-store下载掌上高铁的时候,直接把它劫持掉,改由我们设备服务器直接推给用户下载,这样我们就可以省下不少流量。

         现在问题来了,我们需要分析不同苹果手机机型在app store 点击下载掌上高铁时,服务器提供的Url是否一样,这就用到抓包了。习惯在winds10上用fidler来抓取包,所以这次还是使用了fidler,但是发现苹果手机在配置代理后,app store就连不上服务器,猜测是 fidler提供的根证书,app store 不认可;所以最后,改用了charles 来抓取;

           charles 一般用于mac上面来抓取ios上的http包,但是charles也可以用于winds上面;很多ios上面的app 在使用fidler代理时,会连不上服务器,但是用charles就可以。

知识点: 

1)https加密

2)中间人攻击(charles就起到一个中间人的作用)

      假设A是服务器,B是用户,B向A发起HTTPS连接,于是A需要将自己的公钥发给B。中间人C通过某种手段可以截获并伪造AB之间的通讯(比如运营商)。那么C可以伪造一份A的公钥,并保有这分假公钥的私钥;然后截获A发给B的真公钥,并伪造自己的身份,让B认为自己就是A,并把伪造的公钥发给B;如此一来,B会通过伪造的公钥给A发送密文,而C就可以截获这些密文并利用手中的私钥轻易的解密这些密文了。然后将这些密文通过正确的公钥转发给服务器A,这样AB之间的通讯仍将继续,AB在毫不知情的情况下被中间人把证书“偷梁换柱”,从而达成了中间人攻击,AB之间的非对称加密形同虚设,从而TLS协议的对称加密的密钥就能被C轻易的获取,如此,TLS完全告破。

3)数字证书认证机构CA

CA的出现就是防止中间人攻击,简单理解就是确保B收到A的公钥是真实的,而不是伪造的;

简单来说就是:A向CA机构申请一个证书(根密钥对,其公钥称为根证书),把A的公钥用CA的密钥进行加密,这样:A就有了 通过CA验证的证书

当A向B发送经过加密的公钥时,B需要用根证书(密钥)来解密公钥;如此一来,就对A的身份进行了认证;

 

正题:主要介绍 charles在winds10 上的配置和ios端代理的配置;

一、下载并且安装charles,再破解掉

我在百度网盘里面放了charles V4.2  并且放了个破解文件;备注:charles是收费软件,免费也可以用,但是经常断,所以这里提供一个破解版本;

百度网盘链接: https://pan.baidu.com/s/1iLnUzYg9Q395l48Wz9lhVw 提取码: c6a5 

破解方法:安装charles后先不启动,然后把 charles.jar替换C:\Program Files\Charles\lib\下的charles.jar

二、配置windos 端 charles

1)设置-》 proxy Settings里面配置 http 代理; 端口配置为:8888

 

2)给手机端安装根证书:

help->ssl proxying-> install Charles Root Certification on a Mobile device or remote Browser

点击确认后,会出现下面的对话框,点击确认就好了。

 

三、手机端ios设置:

1)配置wifi走代理;注意:手机和电脑连接同一wifi;

方法:设置 里面找到我们的wifi, 点击进去,配置代理-》手动,填写服务器和端口;

服务器就是电脑wlan的ip(通过ifconfig查看),端口:8888

注:设置好后,电脑端就可以看到 Charles 弹出 iPhone 请求连接的确认菜单(如下图所示),点击“Allow”即可完成设置。

2)ios下载chales颁发的根证书

打开浏览器,并且输入:chls.pro/ssl ,这时候一路确认安装就好了;

安装好后,把证书启用:设置-》通用-》关于本机-》证书信任设置

最后:不出意外的话,这时候就可以正常抓取https网络包了,如果大家有不懂的或者是想多交一个朋友,可以给我留言或者微信我:stefan1240 ,请注明优快云;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值