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

相關文章
相關標籤/搜索