charles抓包怎么看内容_charles抓包教程

charles抓包怎么看内容_charles抓包教程现在的网站基本都是 https 的,而 charles 是常用的 http 抓包工具,所以用 charles 调试 https 请求是常见的需求

现在的网站基本都是 https 的,而 charles 是常用的 http 抓包工具,所以用 charles 调试 https 请求是常见的需求。

今天就分享下如何用 charles 调试 https 请求,如何打断点。

首先安装 charles,点击 start recording:

浏览器访问一些页面,这时候左侧就会展示出抓到的 http/https 请求:

图片

但是这时候抓到的是加密过后的内容,这是 https 的机制导致的:

图片

服务端会下发被 CA 认证过的证书,里面包含了公钥,而服务器自己保留私钥,通过这种机制完成对称密钥的传输和身份的认证,之后加密传输数据。

中间人拿到的数据自然都是被加密过的,也就是上图的那些乱码:

图片

那抓包工具怎么能拿到明文的数据呢?

自己用服务端的证书和服务端对接不就行了?

也就是这样:

图片

Charles 自己用服务端的证书来和服务端通信,然后给浏览器一个自己的证书,这样就能解密传输的内容,拿到明文数据了。

点击 Proxy 的 SSL Proxy Setting:

图片

添加一条对 juejin 的 https 代理:

图片

这是 juejin 之前的证书:

图片

代理之后就换成了 Charles 的证书,但是会提示不安全:

图片

图片

这是因为系统有一个存放所有根证书的地方,要那里存在并且被信任的证书才是安全的。

点击 help > SSL Proxying > Install Charles Root Certificate,安装到系统的钥匙串中:

图片

改为始终信任:

图片

这时候浏览器里就会标记安全了:

图片

并且在 charles 里就会看到明文的 http 请求和响应内容:

图片

这个过程的原理就是这张图:

图片

现在能够抓 https 包了,但是还不够,现在只能看,很多情况下我们是希望能修改一下请求和响应内容的,这时候就要用断点功能了:

右键请求,勾选 breakpoints:

图片

然后开启断点:

图片

刷新页面你会发现它断住了:

图片

下面三个按钮分别是取消、终止、执行修改后的请求的意思。

上面可以改 url,添加 header,还可以改请求内容和 cookie:

图片

点击 execute 之后就会发送请求。

之后响应的时候还会断住,这时候就可以用同样的方式修改响应了:

图片

比如我把 title 修改了一下,点击 execute 之后,看到的网页就是修改过后的:

图片

这样我们就可以断点调试 https 请求了。

为什么可以实现断点功能呢?

这个很容易想明白,怎么请求、怎么响应都是 Charles 控制的,那想实现一个断点和编辑的功能,岂不是很容易么?

有的同学可能会问,移动端怎么调试呢?

其实是一样的,只不过移动端也要把 Charles 证书安装到自己的系统中,需要点击安装 charles 证书到移动设备:

图片

他会提示你在手机设置代理服务器,然后下载 Charles 证书:

图片

原理和我们在 PC 端下载 Charles 证书是一样的,后续流程也一样。

除此以外,chrome 还有一个浏览器插件可以更细粒度的控制代理,叫做 SwitchyOmega:

图片

你可以配置若干个代理服务器,比如 charles 的代理服务器:

图片

这个可以在 Charles 的 Proxy > Proxy Setting 里配置:

图片

然后就可以配置什么 url 用什么代理,或者不用代理直接连接:

图片

当你有多个代理服务器,或者想控制有的页面走代理有的不走的时候,就可以用这个插件来控制了。

总结

用 Charles 调试 https 请求是常见的需求,它需要安装 Charles 的证书到本地系统,然后信任,之后就可以抓到明文数据了。

原理就是 Charles 会使用服务器的证书来和服务器通信,然后发一个自己的证书给浏览器。

Charles 还有断点调试功能,可以修改请求和响应的数据。

移动端 https 调试也是同样的原理,只不过需要配置下代理和证书。

如果想切换代理服务器或者设置有的页面不走代理,可以用 Chrome 插件 SwitchyOmega 来控制。

会断点调试 https 请求还是很有意义的,比如改改 header、改改 body,看看会有啥效果,使用场景有很多。

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

(0)

相关推荐

  • Python实现余弦函数及其在科学计算中的应用

    Python实现余弦函数及其在科学计算中的应用余弦函数是一种三角函数,通常用cos(x)表示,其中x为弧度值。在直角三角形中,角A的余弦值等于斜边上的某一点(例如点P)到顶点A的距离与斜边长度的比值,即cos(A)=PQ/AC。在数学中,余弦函数的图像是一个连续的波浪线,而且具有周期性。

    2024-02-25
    100
  • Mysql 多表连接查询 inner join 和 outer join 的使用「建议收藏」

    Mysql 多表连接查询 inner join 和 outer join 的使用「建议收藏」JOIN的含义就如英文单词“join”一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接。这里描述先甩出一张用烂了的图,然后插入测试数据。 首先先列举本篇用到的分类(内连接,外连接,…

    2023-01-31
    153
  • es6 symbol类型_es6新增数据类型

    es6 symbol类型_es6新增数据类型在es5中有五种基本类型分别是字符串,数字,布尔,null 和 undefined,在es6中引入一种新的基本类型 Symbol,表示独一无二的值。常用于模拟创建对象的私有属性。 不能使用 new 调用,因为 Symbol 是基本类型,不是返回对象。 调用该方法会先在全局的Sy…

    2023-08-12
    141
  • 云小课|MRS基础原理之Hudi介绍「终于解决」

    云小课|MRS基础原理之Hudi介绍「终于解决」阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要:Hudi是数据湖的

    2023-06-12
    149
  • Redis系列(九):Redis的事务机制

    Redis系列(九):Redis的事务机制Redis的事务机制。

    2023-03-29
    144
  • MySQL中的触发器是什么_数据库的触发器

    MySQL中的触发器是什么_数据库的触发器阅读目录 什么是触发器 特点及作用 例子:创建触发器,记录表的增、删、改操作记录 弊端 什么是触发器 简单的说,就是一张表发生了某件事(插入、删除、更新操作),然后自动触发了预先编写好的若干条SQL语

    2023-02-02
    140
  • linux mysql 端口号修改「建议收藏」

    linux mysql 端口号修改「建议收藏」一、查看默认端口号 1、登录mysql [root@localhost ~]# mysql -uroot -pEnter password: 输入数据库密码; 2、使用show global var…

    2023-03-29
    161
  • 小米10是865处理器吗_小米10骁龙865

    小米10是865处理器吗_小米10骁龙865     闲来无事,今天就和大家聊一聊为什么此次搭载高通865处理器的小米10性能不佳。最近看到网上很多小米10与荣耀V30关于5G性能的对比测试视频,发现小米10此次5G性能十分令人堪忧,这是否真…

    2023-02-03
    171

发表回复

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