zoukankan      html  css  js  c++  java
  • Charles抓包及破解

    目录
    一、Charles原理
    二、Charles破解
    三、设置抓取https协议
    四、手机连接Charles配置
    五、代理设置成功,重新发起网络请求,解密过的请求数据出现在Charles主界面,ok!

    一、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/

    二、Charles破解

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

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

    1、输入RegisterName(此名称随意,用于显示 Registered to xxx)
    2、选择本地已安装的版本,点击生成,并下载Charles.jar文件
    3、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破解成功

    三、设置抓取https协议

    1、Proxy端口设置

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

    Charles代理的端口

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

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

    选择安装 Help -> SSL Proxying -> 以下三项证书:

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

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

    4、SSL代理和端口号设置

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

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

    四、手机连接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手机则需要在“设置->通用”中打开相应的权限;

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

    五、代理设置成功,重新发起网络请求,解密过的请求数据出现在Charles主界面,ok!

    为什么要装Charles根证书:

    因为Charles最终代理我们的ssl流量是要发回给我们的,而这个过程是我们和本地Charles代理的ssl通信,如果我们没有Charles签发的根证书,那么我们将无法信任Charles转发的任何ssl流量。

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

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

  • 相关阅读:
    图片滤镜高斯模糊
    context.Request.Files为NULL问题 在实现图片上传功能的时候出现在ashx等处理页面出现context.Request.Files为NULL异常,有几点需要注意:
    C#中使用代码动态改变配置文件信息
    缓存
    使用iframe实现图片上传预览效果
    loading 加载
    sql 查询每月的销售金额
    GridView数据格式化
    把图片转换成二进制--把二进制转换成图片
    asp.net js 倒计时总秒数量 和 排序
  • 原文地址:https://www.cnblogs.com/sweetheartly/p/10519349.html
Copyright © 2011-2022 走看看