iOS抓包工具Charles的使用

iOS抓包工具Charles的使用首先,设置手机的网络连接电脑共享wifi,同时设置端口号; 其次,涉及到https抓包时,需要设置手机安装和信任ssl证书,以及设置Charles中ssl的配置。一、下载与安装Charles:charles-proxy-3.10.2.dmgjavaSDK:javaforosx.dmg二、网络环境与手机的配置1、开启电脑共享wifi,同时设置主机代理与端口号(1)系统偏好设置——>共享——>互联网共享;(2)系统偏好设置——>网络——>以太网——>高级——&

大家好,又见面了,我是你们的朋友全栈君。

  • 首先,设置手机的网络连接电脑共享wifi,同时设置端口号;
  • 其次,涉及到https抓包时,需要设置手机安装和信任ssl证书,以及设置Charles中ssl的配置。

一、下载与安装
Charles:charles-proxy-3.10.2.dmg
javaSDK:javaforosx.dmg

iOS抓包工具Charles的使用

二、网络环境与手机的配置
1、开启电脑共享wifi,同时设置主机代理与端口号
(1)系统偏好设置——>共享——>互联网共享;
(2)系统偏好设置——>网络——>以太网——>高级——>DHCP客户端ID(默认8888);

iOS抓包工具Charles的使用

 

iOS抓包工具Charles的使用

 

iOS抓包工具Charles的使用

 

iOS抓包工具Charles的使用

 

 

iOS抓包工具Charles的使用

 

2、设置手机代理
(1)查看IP地址:终端命令ifconfig查看,或系统偏好设置——>网络——>以太网——>IP地址
(2)设置——>wifi或无线局域网——>已连接共享wifi名称——>HTTP代理——>手动——>服务器(电脑ip地址)、端口(8888);

iOS抓包工具Charles的使用

iOS抓包工具Charles的使用

 

 

iOS抓包工具Charles的使用

 

iOS抓包工具Charles的使用

三、抓包
1、http抓包
可以清楚的查看到发送的请求头信息,以及服务器返回的没有加密处理的明文信息。
(1)查看请求信息:Structure-Request
(2)查看返回信息:Structure-Response-Text,或JSON

iOS抓包工具Charles的使用

 

iOS抓包工具Charles的使用

2、https抓包

注意:主要是配置手机端和Charles端的SSL证书。

HTTPS(Hyper Text Transfer Protocol Secure),是一种基于SSL/TLS的HTTP,所有的HTTP数据都是在SSL/TLS协议封装之上进行传输的。HTTPS协议是在HTTP协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议。所以,研究HTTPS协议原理,最终就是研究SSL/TLS协议。
HTTPS是通过一次非对称加密算法(如RSA算法)进行了协商密钥的生成与交换,然后在后续通信过程中就使用协商密钥进行对称加密通信。

 

iOS抓包工具Charles的使用

 

Charles抓HTTPS包原理
Charles本身是一个协议代理工具,如果只是普通的HTTP请求,因为数据本身没经过再次加密,因此作为代理可以知道所有客户端发送到服务端的请求内容以及服务端返回给客户端的数据内容,这也就是抓包工具能够将数据传输内容直接展现出来的原因。对于HTTPS请求,4,6,8步骤的数据都已经经过了加密,代理如果什么都不做的话是无法获取到其中的内容的。为了实现这个过程的数据获取,Charles需要做的事情是对客户端伪装服务端,对服务端伪装客户端,具体截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容一般情况下HTTPS中是客户端对服务端做证书校验,当然也有一些金融机构会有用户证书作为提供给服务端做用户认证的工具,保证发出请求的的确是这部分授权用户。我们仅分析客户端对服务单做证书校验的这种。Android有自己的一套HTTPS通信调用方式,以HttpsURLConnection为例

URL url = new URL(“https://wikipedia.org”);  
URLConnection urlConnection = url.openConnection();  
InputStream in = urlConnection.getInputStream();  
copyInputStreamToOutputStream(in, System.out);  

 

上面这段代码就是一个https请求的样例,这种方法的特点是证书校验工作交由系统处理,系统只会允许可信CA签发的数字证书能够访问,私有CA签发的数字证书(比如12306以及我们上文说的Charles证书)是无法访问的。
访问方法1:修改Https通信代码,这种只对开发者开发应用的时候好使,我们需要实现X509TrustManager接口去做自己的一套证书校验,它并不通用,尤其是对于我们抓包而言是不可行的,因为我们没法去修改别人应用中的代码。
访问方法2:将私有CA签发的数字证书安装到手机中并且作为受信任证书保存,这种方式是我们推荐的方式,唯一的缺点是你的手机上可能会在通知栏一直留着一个特殊标志,告诉你网络可能被监控。

(1)手机端配置证书
通过手机浏览器打开网址:http://charlesproxy.com/getssl

注意:安装后ssl证书后,还需要主动设置信任(设置——>通用——>关于本机——>证书信任设置)

 

iOS抓包工具Charles的使用

 

iOS抓包工具Charles的使用

 

iOS抓包工具Charles的使用

 

 

iOS抓包工具Charles的使用

 

iOS抓包工具Charles的使用

 

iOS抓包工具Charles的使用

(2)pc端Charles配置证书 

iOS抓包工具Charles的使用

 注意:
(1)未设置前https的标识都是有个加锁有标识
(2)Host设置,如果不知道具体的API地址时,可设置为星号” * “
(3)Port设置,设置时Port默认都是443

iOS抓包工具Charles的使用

 https请求及返回的信息未设置ss证书时,抓包数据均是乱码,且接口API标识为黄色警告;设置ssl证书后,则能正常显示。

iOS抓包工具Charles的使用

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140876.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 3.1 学习率(learning rate)的选择

    3.1 学习率(learning rate)的选择1.什么是学习率调参的第一步是知道这个参数是什么,它的变化对模型有什么影响。(1)要理解学习率是什么,首先得弄明白神经网络参数更新的机制-梯度下降+反向传播。参考资料:https://www.cnblogs.com/softzrp/p/6718909.html。总结一句话:将输出误差反向传播给网络参数,以此来拟合样本的输出。本质上是最优化的一个过程,逐步趋向于最优解。但是每一次更新参数利用…

    2022年6月11日
    33
  • 数据库表设计 基本思路[通俗易懂]

    数据库表设计 基本思路[通俗易懂]好的数据结构会影响速度。好的数据库表设计会影响数据库操作效率。特别是数据多的时候,如果表的结构不好的话操作的时候条件(where后的内容)会变的非常复杂。SQL是关系数据库中用到的一种语言。所以,为了简化SQL,表的关系(内部和外部)要尽量设计的合理。下面有几个可以参照的步骤:1)找出那个表要描述的东西;2)列出你想通过这个表得到的相关信息的列表;3)通过上面的信息列表,将信息

    2022年6月20日
    30
  • 云铺购代刷网系统全开源可运营程序搭建「建议收藏」

    云铺购代刷网系统全开源可运营程序搭建「建议收藏」云铺购最新代刷网系统无后门全开源可运营版本控制端功能支持一键通秒搭建代刷网站点,一键新增修改站点版本,支持QQ一键通登录自主添加站点域名管理站点,可配置后台安全访问域名白名单IP(实时保护)控制端支持一键备份旗下所有站点数据,共享数据版大大减少服务器压力主站点功能前后台支持QQ一键通登录,前台风格8套内页风格3套,免密支付,订单代付自定义网站公告导航,等级配置,邮箱配置,密匙配置,站点一键通装修支持一键通秒对接云铺购系统,玖伍系统,亿乐系统,各大卡盟系统,网商系统等对接商

    2022年8月12日
    6
  • pycharm过期了_pycharm到期怎么延长

    pycharm过期了_pycharm到期怎么延长pycharm的LICENSE过期1.把jetbrains-agent.jar复制到bin目录下,我的是在download里,找了半天才找到2.vmoptions64和vmoptions最后加上-javaagent:/目录/jetbrains-agent.jar一定不要写错,写错出不来注册框3.注册框弹出来,选择Licenseserver方式,地址填入:http://jetbrain…

    2022年8月28日
    2
  • 解决SqlTransaction用尽的问题(SQL处理超时)

    解决SqlTransaction用尽的问题(SQL处理超时)有时候程序处理的数据量比较小时,四平八稳,一切安然无恙,但数据量一大,原先潜伏的问题就暴露无遗了。原访问数据库的代码为: 1SqlConnection conn = new SqlConnection(strConn); 2conn.Open(); 3SqlTransaction trans = conn.BeginTransaction(); 4try 5{ 6    CEngine.Exe…

    2022年5月18日
    37
  • linux smartctl 命令,在 CentOS 7 里用 smartctl 和 hdparm 对硬盘进行基本测试

    linux smartctl 命令,在 CentOS 7 里用 smartctl 和 hdparm 对硬盘进行基本测试新租服务器,想对硬盘的健康情况和读写速度进行基本测试,如使用CentOS7系统,可使用smartctl和hdparm的命令。过程:1.yum-yinstallsmartmontoolshdparm#安装相应的软件2.smartctl–test=short/dev/sda#假如硬盘设备名称是/dev/sda,进行简单测试3.smartctl-lselftest…

    2022年6月20日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号