手把手教你用Charles抓包

xxq2dream發表於2018-12-25

本文首發於公眾號“AntDream”,歡迎微信搜尋“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點

日常開發過程中難免要進行抓包,檢視服務端返回的資料是否正常,而Charles可謂是抓包利器了。

下載安裝地址:www.charlesproxy.com/

原理淺析

配置好以後,Charles實際上讓電腦成了一箇中間代理伺服器,我們手機上的所有請求都會經過電腦,被Charles攔截,然後Charles把自己偽裝成手機向我們的遠端伺服器地址傳送請求,所以Charles能記錄我們傳送的請求資訊;

而等服務端響應請求時,實際上是響應了Charles的請求,Charles獲得服務端的請求以後,又轉發給我們的手機,所以Chaerles能獲得服務端響應的詳細資訊。

使用Charles

普通http抓包

安裝好Charles後啟動,我們就能看到很多的請求資訊了,因為Charles啟動的時候預設是抓取Mac的所有網路請求的:

image

如果要關掉,可以在頂部選單欄Proxy-->macProxy勾選去掉

那我們要抓手機應用的網路請求呢?

首先我們需要讓手機的所有網路請求都經過裝有Charles的Mac電腦,要達到這個效果只需要給手機的網路設定一個代理,代理IP就是Mac的IP,代理的埠就是Charles中設定的埠

貼心的是,Charles還提供了查詢本機IP的工具:頂部選單help-->Local IP Address,就能很方便的獲取本機的IP地址

image

拿到電腦的IP地址以後,我們還需要知道代理的埠,Charles預設的埠是8888,這個也可以檢視和設定。開啟頂部選單Proxy-->Proxy Setting

image

接下去就是設定手機的網路代理了,設定方式也很簡單。

  • 開啟手機當前連線的WI-FI詳情頁,可以找到一個代理的選項
  • 然後選擇手動,就會出現主機名的選項,分別填入上面查到的IP地址和埠號儲存即可
  • 這時電腦端的Charles就會彈出一個提示,大意是選擇是否監聽抓包之類的,選擇Allow即可

記過以上簡單幾步,charles就能抓手機的包了。

Https抓包

現在很多了網頁連結都是Https的了,而上面的設定只能抓Http的請求。要想抓Https請求,我們還需要幾步設定才行。

Https的一個特點是請求時會校驗證書,而從文章開頭我們簡單介紹的charles的原理中我們也能大概知道,只需要在Http抓包的基礎上增加一個Https的證書就可以實現Https抓包了。這個Https證書包括2個:

  • 一個是Charles本身需要配置一個Https證書,這樣Charles才能和服務端正常的通訊
  • 再一個就是手機端的Https證書了,這樣手機才能和Charles正常通訊
  • 實際上,相當於Charles從普通的Http代理伺服器變成了Https伺服器
(1)Charles安裝Https證書

首先開啟頂部Charles選單:Help-->SSL Proxying,可以看到有很多選項

  • 選擇Install Charles Root Certificate,也就是安裝Charles的根證書
  • 在開啟的鑰匙串裡面,選擇Charles Proxy CA,雙擊開啟,選擇始終信任即可

image

(2)手機安裝Https證書

還是上面的同一個選單入口,這次就要根據手機不同選擇不同了

image

選擇對應手機型號以後,就會出現一個提示框,裡面有下載證書的地址http://chls.pro/ssl,手機上開啟對應的連結即可下載安裝

(3)Charles設定

手機安裝好證書以後,開啟Charles的選單:Proxy-->SSL Proxying Settings

手把手教你用Charles抓包

經過以上幾步,Charles就可以進行Https抓包啦!

其他

使用完Charles以後,手機上記得把代理去掉,不然手機就沒辦法上網了哦


                       歡迎關注我的微信公眾號,和我一起每天進步一點點!
複製程式碼

AntDream

相關文章