一步一步教你 https 抓包

hi_xgb發表於2019-03-03

在 Mac 上常用的抓包軟體是 Charles,網上關於 Charles 的教程很多,這裡介紹另一個抓包神器 mitmproxy。mitmproxy 是一款可互動式的命令列抓包工具,它除了可以抓包檢視 http/https 請求,還有一個很強大的功能是攔截並修改 request 或者 response,後面我會用實際例子演示如何修改知乎的回答:)

安裝

mitmproxy 官網 介紹了用以下命令來安裝

pip install mitmproxy複製程式碼

我在實際安裝過程中遇到了一些坑,首先是 OSX El Capitan 及以上的系統版本在安裝時會出現 six 模組依賴錯誤,具體可以看這兒的討論。還有一個問題是安裝過程中會出現許可權錯誤,需要以 root 許可權執行。最後用以下命令成功安裝,安裝不了需要翻一下牆

pip install mitmproxy --ignore-installed six複製程式碼

開始使用

首先需要配置一下網路環境,將手機和電腦連在同一個 wifi 環境下,然後進入手機的 設定 – 無線區域網,點選當前連線的 wifi 進入詳情設定頁面,在 http 代理那一欄輸入當前連線的 ip 地址,埠填8080,這個 ip 地址可以在電腦上的 系統偏好 – 網路 裡檢視,配置完成如下圖,

一步一步教你 https 抓包

網路環境配置完成後我們可以開始實際的抓包了,只需在電腦上開啟終端(命令列操作視窗),然後輸入 mitmproxy -p 8080,如果你看到如下頁面說明你已成功進入抓包模式,邁出了第一步,cheer~

一步一步教你 https 抓包

接下去你可以用手機開啟一些 App,不出意外你能看到一些 http 請求的列表。這時候我們還無法抓到 https 的包,還需要做一些額外配置。

下面的操作是針對 iPhone 手機,其他裝置也類似。用 iPhone 開啟 Safari 瀏覽器並輸入 mitm.it,這時你會看到如下頁面,

一步一步教你 https 抓包

選擇對應平臺並安裝證照,安裝完成後就可以抓 https 的包了,官網上解釋了這個工具是如何工作的

注意:用瀏覽器開啟時需要已經在抓包模式,否則是無法看到上述頁面的

好了,到這裡我們已經完成了所有的準備工作,接下去就和我一起實際體驗一下 https 的抓包過程吧。

這裡以知乎為例,用手機開啟知乎,我們應該能看到知乎的請求出現在列表裡了,類似下圖:

一步一步教你 https 抓包

鍵盤上下移動,Enter 鍵進入檢視詳情,按 Tab 鍵切換頂部導航欄,如下圖所示,

一步一步教你 https 抓包

Tips:輸入z可以清空列表,輸入f再輸入~u xxx可以過濾出 url 為 xxx 的請求,更多匹配規則輸入? 檢視

請求攔截

上面演示的是常規的操作,下面介紹一下 mitmproxy 的另一強大功能,攔截修改 request 和 response。

輸入 i,然後輸入 ~s 再按Enter鍵,這時候就進入了 response 攔截模式。如果輸入 ~q 則進入 request 的攔截模式,更多的命令可以輸入 檢視。攔截模式下的頁面顯示如下圖所示,

一步一步教你 https 抓包

其中橘紅色的表示請求正被攔截,這時 Enter 進入後 再按 e 就可以修改 request 或者 response。修改時是用 vim 進行編輯的,修改完成後按 a 將請求放行,如果要放行所有請求輸入 A 即可。

下圖是我修改了某個答案的 response 請求將回答者的名字做了修改,因為只修改了 response 並不會影響其他的使用者顯示:)

一步一步教你 https 抓包

上面提到的那些指令在輸入 後都能檢視到,如下圖,另外官網上也有很詳細的說明

一步一步教你 https 抓包

我用上述方式嘗試了大多數的 App,包括淘寶、微博,都能抓到 https 的包,有些有加密,有些沒有加密。但是簡書做了防中間人攻擊的設定,一啟用抓包模式就顯示網路錯誤1012,還是做的很不錯的,贊一個~

按照上面的過程就可以 https 抓包了,如果有遇到問題可以聯絡我,記得抓完後將手機 wifi 設定裡的 http 代理關閉。開始實際體驗一下吧,enjoy~

轉載請註明出處,有任何疑問都可聯絡我,歡迎探討。


最後做個推廣,歡迎關注公眾號 MrPeakTech,我從這裡學到很多,推薦給大家,共同進步~

一步一步教你 https 抓包

相關文章