《爆肝整理》保姆級系列教學-玩轉Charles抓包神器教學(7)-Charles蘋果手機手機抓包知否知否?

2023-02-21 12:00:22

1.簡介

Charles和Fiddler一樣不但能截獲各種瀏覽器發出的 HTTP 請求,也可以截獲各種智慧手機發出的HTTP/ HTTPS 請求。

Charles也能截獲iOS裝置發出的請求,比如 iPhone、iPad 和 MacBook 等蘋果裝置。

今天宏哥講解和分享Charles如何截獲蘋果行動端發出的 HTTP/HTTPS 請求。

2.環境準備

Charles如果想要實現手機抓包,需要先滿足下面 3 個條件:

(1)電腦上安裝有Charles抓包工具。

(2)安裝有Charles的電腦必須跟手機處在同一個網路里,並且手機網路代理必須設定為Charles,當我們的手機傳送資料時必須經過Charles這一層服務。

(3)在Charles中設定好捕獲 HTTPS。

1.宏哥的環境是Windows 10版本 64位元系統。如下圖所示:

3.大致思路步驟

1.電腦本地安裝charles證書

2.檢視電腦charles的IP和埠號

3.手機連線charles,抓取簡單的http

4.charles設定ssl proxy setting

5.手機安裝charles證書

4.為什麼需要安裝Charles的CA證書呢?

1)先理清一些概念的東西:

a)簡單來說,https是http的安全版本,超文字傳輸協定http是以明文傳送資料,而https是具有安全性的ssl加密傳輸協定,可以這麼認為https=http+ssl。

b)採用https的伺服器必須從CA申請一個用於證明伺服器用途型別的證書,證書是唯一性,只用於對應的伺服器。使用者端要認可這個伺服器是否是安全的,可以進行存取或者交易等操作,則需要進行對伺服器端的驗證。

下圖是使用者端對伺服器的驗證過程:

c)ssl證書,遵循了ssl協定,在使用者端和伺服器之間建立了一條ssl安全通道,一般ssl證書都是在驗證伺服器身份後頒發給使用者端。

d)由於ssl技術已建立在所有主要的瀏覽器和web伺服器程式中,因此,僅需安裝伺服器證書就可以啟用ssl協定,所以使用者端通過信任該證書,就相當於信任了該主機(伺服器)。

下圖是使用者端和伺服器端加密通訊的流程:

2)通過以上一個簡單的理順之後,這也就為什麼當我們在使用Charles進行抓包的時候需要安裝證書,可以通過ssl數位憑證中的私用金鑰來解譯加密的資訊,展示在Charles中,但是Charles有一個特殊的地方,就是實際上使用者端安裝的是Charles的CA證書,然後Charles安裝伺服器的CA證書,實際上流程還是一樣的。

5.蘋果手機抓包設定

5.1Charles PC端http設定

http是預設設定好的,要是預設安裝完沒設定好,我們就自己設定一下,預設的埠號是「8888」我們後面設定手機代理的的時候也要注意這個埠要保持一致。

Charles的設定:這是要開啟代理功能,具體操作步驟如下:

1.啟動Charles,點選「Proxy-->Proxy Settings」,然後在Proxy Settings中填好埠(8888),並且勾選上「Enable transparent HTTP proxying」,最後點選「OK」。如下圖所示:

2.檢視執行Charles的電腦的IP地址,可以在命令列中執行ipconfig或者直接檢視網路設定,如下圖所示:

3.可以對照一下當前所安裝的Charles中的ip地址是否一致,你可以直接在Charles上可以直接檢視Charles的IP和埠,點選「Help-->SSL Proxying」,然後點選「Install Charles Root Certificate on a Mobile Device or Remote Browser」,如下圖所示:

5.2Charles PC端SSL(https)設定

無論電腦端還是手機端進行抓取Https的包,都需要先安裝對應證書才能使用。具體操作步驟如下:

1.開啟charles,點選help-->SSL Proxying-->Install Charles root  Certificate 安裝證書,如下圖所示:

2.點選完「Install Charles root  Certificate」後,然後點選「安裝證書」,如下圖所示:

3.點選「安裝證書」後,選擇儲存位置「本地計算機」,點選「下一步」,如下圖所示:

4.證書儲存位置選擇‘將所有的證書都放入下列儲存’,然後點選證書儲存後的「瀏覽」,證書儲存選擇「受信任的根證書頒發機構」,點選「確定」,如下圖所示:

5.點選「下一步」,如下圖所示:

6.點選「完成」,提示匯入成功。如下圖所示:

7.點選proxy》 SSL Proxyng Settings。如下圖所示:

8.開啟介面如下 弄到跟我一樣就可以 如果沒有*;443自己按add手動添host :*,port:443 。如下圖所示:

這樣就可以抓取PC端的http和https型別的包了,接下來我們就來進行安卓手機端代理的設定。

5.3蘋果手機設定

1.手機和電腦連線到同一Wifi下。

2.手機中設定代理,選擇【無線區域網】設定---> 點選【設定代理】–>【手動】,輸入伺服器和埠,點選儲存。(輸入本機【IP地址(192.168.*.***)】以及上面檢視到的埠號【8888】)詳細步驟如下:

(1)【設定-無線區域網】,如下圖所示:

 (2)選擇要連結的網路,點選右側「!」號,如下圖所示:

(3)進入該網路的設定頁面,滑動到最底部,點選設定代理,如下圖所示:

 (4)選擇手動,輸入電腦端的ip和埠後點選儲存,如下圖所示:

3.手機首次連線charles後發起任意http請求會彈出是否信任視窗,點選Allow,如下圖所示:

5.4手機安裝證書

1手機連線charles代理後,開啟safari瀏覽器,位址列輸入chls.pro/ssl開啟網頁彈出嘗試下載組態檔,點選允許。如下圖所示:

2手機設定--->通用--->描述檔案與裝置管理中檢視下載的組態檔,點選charles Proxy CA(xxx)選擇安裝,如下圖所示:

敲黑板!!!

**注意1:Safari瀏覽器輸入這個網址chls.pro/ssl,安裝不了證書的情況,需要注意:

  • 設定好手機HTTP代理

  • 電腦上Charles要開著

3手機設定--->通用--->關於本機--->證書信任設定中開啟剛剛下載的證書,如下圖所示:

至此代理設定完畢,可以在charles抓取Https的請求。

7.小結

 Charles和Fiddler一樣,一個手機可以安裝多個證書,但是每安裝的一個證書裡面都設定有IP地址,所以:安裝的證書和電腦IP是一一對應的,當前的這個證書只能針對某一臺電腦使用,更換電腦後,該證書將不能使用,只能重新安裝與更換的電腦的IP相同的證書才能使用。