Charles抓包及破解

目录
1、Charles原理
2、Charles破解
3、设置抓取https协议
4、手机链接Charles配置
5、代理设置成功,从新发起网络请求,解密过的请求数据出如今Charles主界面,ok! java

1、Charles原理

  • 对Http进行抓包,对手机设置代理,转发
  • 对Https进行抓包,使用的原理就是中间人技术(man-in-the-middle),Charles会动态生成一个使用本身根证书签名的证书,Charles接收web服务器的证书,而客户端浏览器/客户端 接收Charles生成的证书,以此客户端和Charles之间创建Https链接,Charles和Web服务器之间创建Https链接,实现对Https传输信息的抓包。若是Charles根证书不被信任则没法创建Https链接,因此须要添加Charles根证书为信任证书。

Charles下载地址: https://www.charlesproxy.com/download/ web

2、Charles破解

破解方法1:经过替换Charles.jar破解

下载地址: https://www.zzzmode.com/mytools/charles/ 浏览器

一、输入RegisterName(此名称随意,用于显示 Registered to xxx)
二、选择本地已安装的版本,点击生成,并下载Charles.jar文件
三、Mac安装地址:替换本地 /Applications/Charles.app/Contents/Java 目录下的Charles.jar文件
   Windows安装地址:替换本地安装目录下的charles.jar文件

破解方法2:经过验证License Key破解

Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4

重启Charles,点击Tools -> help,第二栏显示Registered to xxx, 即破解成功!(破解成功后的charles在启动时,左下角的倒计时也没有了)服务器

Charles破解成功

3、设置抓取https协议

一、Proxy端口设置网络

选中“Charles -> Proxy -> Proxy Settings”,设置Port为8888,选中“Enable transparent HTTP proxying”选项;app

Charles代理的端口

二、在弹框中选择“Grant Privileges”信任;若是点击“Not Yet”或者关闭按钮,Charles将会取消Mac代理,须要手动设置,设置时会再次弹出窗口;加密

三、SSL证书-安装与信任三种证书:钥匙串根证书,模拟器证书,手机和浏览器证书spa

选择安装 Help -> SSL Proxying -> 如下三项证书:.net

Install Charles Root Certificate; #钥匙串根证书,选择始终信任,输入电脑密码
Install Charles Root Certificate on a Mobile Devices Or Remote Browser #手机和浏览器证书,在弹框提示下安装手机ssl证书到手机

打开钥匙串,Charles Proxy CA证书,一开始是不被信任的;选择始终信任,输入电脑密码;3d

四、SSL代理和端口号设置

https请求被拦截:https请求会显示unkonwn 就是不能解析https请求;

(1)Proxy-> SSL Proxying Settings->SSL Proxying,选中"Enable SSL Proxying";
(2)添加host,端口号为443。这里是把全部的host都设置进去;固然也能够设置指定的host,端口不变;
(3)请求就能够解析出来了

4、手机链接Charles配置

注意:手机的无线网要和电脑的无线网保持一致,必须是同一wifi;

4.1查看电脑的ip地址,有如下3种方式:
查看电脑pc端ip-0

4.2手机链接Charles抓包配置

(1)打开手机的HTTP代理,服务器为电脑的IP,端口号为8888;
(2)手机端访问网络,Charles会弹出确认窗,点击Allow(注意:首次设置代理,须要在手机浏览器上安装证书;在手机浏览器中输入:chls.pro/ssl  下载证书;详情看4.3);
(3)不须要抓包时,把手机代理恢复默认值,不然拖慢网速;

4.3查看https请求时,手机端需安装Charles的CA证书。安装SSL证书到手机设备时,Charles会弹框提示,选择“Allow”:

提示手机安装ssl证书

4.4手机受权

手机安装地址:chls.pro/ssl,直接在手机浏览器的地址栏输入,安装容许就行了;

安卓手机可直接受权,IOS手机则须要在“设置->通用”中打开相应的权限;

一、设置->通用->关于本机->证书信任设置,打开Charles Proxy CA的开关信任此证书;
二、设置->通用->描述文件与设备管理,打开Charles Proxy CA的开关信任此证书;

5、代理设置成功,从新发起网络请求,解密过的请求数据出如今Charles主界面,ok!

为何要装Charles根证书:

由于Charles最终代理咱们的ssl流量是要发回给咱们的,而这个过程是咱们和本地Charles代理的ssl通讯,若是咱们没有Charles签发的根证书,那么咱们将没法信任Charles转发的任何ssl流量。

另外因为咱们在Charles里面设置了和服务器对应的客户端证书PKCS12格式的包文件(pkcs12中包含被根证书签出来的公私钥),因此咱们能够解密由指定host服务器发送过来的加密的数据,从而像抓包http包同样看到这些数据包里面的数据。Charles负责代替咱们和该服务器发送接收加密数据,而咱们还须要和Charles自己再进行一次通讯,这样说应该就比较明确了。

推荐一篇颇有趣的博客:乱码的原因 —— SSL 加密 【往下翻一点,让小明带你走入SSL加密的世界吧~】

相关文章
相关标签/搜索