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加密的世界吧~】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM