在 Mac 上常用的抓包軟件是 Charles芯丧,網(wǎng)上關于 Charles 的教程很多沪饺,這里介紹另一個抓包神器 mitmproxy洲劣。mitmproxy 是一款可交互式的命令行抓包工具江醇,它除了可以抓包查看 http/https 請求救巷,還有一個很強大的功能是攔截并修改 request 或者 response,后面我會用實際例子演示如何修改知乎的回答:)
安裝
mitmproxy 官網(wǎng) 介紹了用以下命令來安裝
pip install mitmproxy
我在實際安裝過程中遇到了一些坑贬循,首先是 OSX El Capitan 及以上的系統(tǒng)版本在安裝時會出現(xiàn) six 模塊依賴錯誤咸包,具體可以看這兒的討論。還有一個問題是安裝過程中會出現(xiàn)權限錯誤杖虾,需要以 root 權限執(zhí)行烂瘫。最后用以下命令成功安裝,安裝不了需要翻一下墻
sudo pip install mitmproxy --ignore-installed six
開始使用
首先需要配置一下網(wǎng)絡環(huán)境,將手機和電腦連在同一個 wifi 環(huán)境下奇适,然后進入手機的 設置 - 無線局域網(wǎng)坟比,點擊當前連接的 wifi 進入詳情設置頁面,在 http 代理那一欄輸入當前連接的 ip 地址嚷往,端口填8080葛账,這個 ip 地址可以在電腦上的 系統(tǒng)偏好 - 網(wǎng)絡 里查看,配置完成如下圖皮仁,
網(wǎng)絡環(huán)境配置完成后我們可以開始實際的抓包了籍琳,只需在電腦上打開終端(命令行操作窗口),然后輸入 mitmproxy -p 8080
贷祈,如果你看到如下頁面說明你已成功進入抓包模式趋急,邁出了第一步,cheer~
接下去你可以用手機打開一些 App势誊,不出意外你能看到一些 http 請求的列表呜达。這時候我們還無法抓到 https 的包,還需要做一些額外配置粟耻。
下面的操作是針對 iPhone 手機查近,其他設備也類似。用 iPhone 打開 Safari 瀏覽器并輸入 mitm.it勋颖,這時你會看到如下頁面嗦嗡,
選擇對應平臺并安裝證書,安裝完成后就可以抓 https 的包了饭玲,官網(wǎng)上解釋了這個工具是如何工作的
注意:用瀏覽器打開時需要已經(jīng)在抓包模式侥祭,否則是無法看到上述頁面的
好了,到這里我們已經(jīng)完成了所有的準備工作茄厘,接下去就和我一起實際體驗一下 https 的抓包過程吧矮冬。
這里以知乎為例,用手機打開知乎次哈,我們應該能看到知乎的請求出現(xiàn)在列表里了胎署,類似下圖:
鍵盤上下移動,Enter 鍵進入查看詳情窑滞,按 Tab
鍵切換頂部導航欄琼牧,如下圖所示恢筝,
Tips:輸入
z
可以清空列表,輸入f
再輸入~u xxx
可以過濾出 url 為 xxx 的請求巨坊,更多匹配規(guī)則輸入?
查看
請求攔截
上面演示的是常規(guī)的操作撬槽,下面介紹一下 mitmproxy 的另一強大功能,攔截修改 request 和 response趾撵。
輸入 i
侄柔,然后輸入 ~s
再按回車鍵,這時候就進入了 response 攔截模式占调。如果輸入 ~q
則進入 request 的攔截模式暂题,更多的命令可以輸入 ?
查看究珊。攔截模式下的頁面顯示如下圖所示薪者,
其中橘紅色的表示請求正被攔截,這時 Enter 進入后 再按 e
就可以修改 request 或者 response剿涮。修改時是用 vim 進行編輯的啸胧,修改完成后按 a
將請求放行,如果要放行所有請求輸入 A
即可幔虏。
下圖是我修改了某個答案的 response 請求將回答者的名字做了修改,因為只修改了 response 并不會影響其他的用戶顯示:)
上面提到的那些指令在輸入 贝椿?
后都能查看到想括,如下圖,另外官網(wǎng)上也有很詳細的說明
我用上述方式嘗試了大多數(shù)的 App烙博,包括淘寶瑟蜈、微博,都能抓到 https 的包渣窜,有些有加密铺根,有些沒有加密。但是簡書做了防中間人攻擊的設置乔宿,一啟用抓包模式就顯示網(wǎng)絡錯誤1012位迂,還是做的很不錯的,贊一個~
按照上面的過程操作就可以 https 抓包了详瑞,如果有遇到問題可以聯(lián)系我掂林,記得抓完后將手機 wifi 設置里的 http 代理關閉。開始實際體驗一下吧坝橡,enjoy~
如果您覺得本文對您有所幫助泻帮,請點擊「喜歡」來支持我。
轉載請注明出處计寇,有任何疑問都可聯(lián)系我锣杂,歡迎探討脂倦。
歡迎大家關注我們團隊的公眾號,不定期分享各類技術干貨