Charels 抓包工具

Charles的主要功能:

(1)截取Http 和 Https 网络封包。

(2)支持重发网络请求,方便后端调试。

(3)支持修改网络请求参数。

(4)支持网络请求的截获并动态修改。

(5)支持模拟慢速网络。

下载地址

// Charles Proxy License
// 适用于Charles任意版本的注册码,谁还会想要使用破解版呢。
// Charles 4.2.7目前是最新版,可用。
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4

  • 破解版本

云盘中文破解免费版:链接: https://pan.baidu.com/s/1PgqzfYmAiOUdDmonDai1aA 密码: azsb

安装证书

  1. 修改所链接网络SSID代理后,比如我的是192.168.3.29:8888
  2. 打开网页 http://www.charlesproxy.com/getssl 下载 mitmproxy-ca-cert.pem手机证书文件
  3. 直接点击pom文件安装无效, 需要

    1 设置

    2 安全与隐私

    3 更多安全设置

    4 从存储设备安装

    5 选中证书文件,点击安装

    6 输入锁屏密码

    7 给安装文件命名mitmproxy

4.

抓包原理

Charles作用其实相当于拦截器,当客户端和服务器通信时,Charles其实会先接收到服务器的证书,但是它会自己生成一个证书发送给客户端(不管是Web端或App应用),也就是说它不仅仅是拦截,甚至还可以修改。

由于Charles更改了证书,所以如果你是使用的Web浏览器,需要导入相应的Charles证书,否则校验不通过会给出安全警告,必须安装Charles的证书后才能进行正常访问。

App应用则需要在你的手机设备中添加该Charles证书,有些设备可能相对变态,必须你设置密码锁才可以安装证书成功。

客户端向服务器发起HTTPS请求

img

Charles拦截客户端的请求。

服务器向“客户端”(实际上是Charles)返回服务器的CA证书

Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端。(这一步,Charles拿到了服务器证书的公钥)

客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles)

Charles拦截客户端的响应,用自己的私钥解密对称密钥,然后用服务器证书公钥加密,发送给服务器。(这一步,Charles拿到了对称密钥)

服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应

Charles拦截服务器的响应,替换成自己的证书后发送给客户端

至此,连接建立,Charles拿到了 服务器证书的公钥 和 客户端与服务器协商的对称密钥,之后就可以解密或者修改加密的报文了。

HTTPS抓包的原理还是挺简单的,简单来说,就是Charles作为“中间人代理”,拿到了 服务器证书公钥 和 HTTPS连接的对称密钥,前提是客户端选择信任并安装Charles的CA证书,否则客户端就会“报警”并中止连接。这样看来,HTTPS还是很安全的。

参考网址

https://www.cnblogs.com/zhangfeivip/p/9644997.html

https://zhuanlan.zhihu.com/p/67199487

原文地址:https://www.cnblogs.com/maanshancss/p/ce2cf863827c66768ce98967b873ebff.html