在Mac上常用的抓包軟件是Charles,網(wǎng)上關(guān)于Charles的教程很多,這里介紹另一個抓包神器mitmproxy。mitmproxy是一款可交互式的命令行抓包工具,它除了可以抓包查看http/https請求,還有一個很強大的功能是攔截并修改request或者response,后面我會用實際例子演示如何修改知乎的回答:)
安裝
mitmproxy官網(wǎng)介紹了用以下命令來安裝
我在實際安裝過程中遇到了一些坑,首先是OSXElCapitan及以上的系統(tǒng)版本在安裝時會出現(xiàn)six模塊依賴錯誤,具體可以看這兒的討論。還有一個問題是安裝過程中會出現(xiàn)權(quán)限錯誤,需要以root權(quán)限執(zhí)行。最后用以下命令成功安裝,安裝不了需要墻一下
pip install mitmproxy --ignore-installed six
開始使用
首先需要配置一下網(wǎng)絡(luò)環(huán)境,將手機和電腦連在同一個wifi環(huán)境下,然后進入手機的設(shè)置-無線局域網(wǎng),點擊當(dāng)前連接的wifi進入詳情設(shè)置頁面,在http代理那一欄輸入當(dāng)前連接的ip地址,端口填8080,這個ip地址可以在電腦上的系統(tǒng)偏好-網(wǎng)絡(luò)里查看,配置完成如下圖
![](http://img.jbzj.com/file_images/article/202002/202024143152787.jpg?202014143443)
網(wǎng)絡(luò)環(huán)境配置完成后我們可以開始實際的抓包了,只需在電腦上打開終端(命令行操作窗口),然后輸入mitmproxy-p8080,如果你看到如下頁面說明你已成功進入抓包模式,邁出了第一步,cheer~
![](/d/20211017/be05d1e7592d2e3dcc30045eea91b1f5.gif)
接下去你可以用手機打開一些App,不出意外你能看到一些http請求的列表。這時候我們還無法抓到https的包,還需要做一些額外配置。
下面的操作是針對iPhone手機,其他設(shè)備也類似。用iPhone打開Safari瀏覽器并輸入mitm.it,這時你會看到如下頁面
![](/d/20211017/fec65c489565b8a30825b872bd7571b4.gif)
選擇對應(yīng)平臺并安裝證書,安裝完成后就可以抓https的包了,官網(wǎng)上解釋了這個工具是如何工作的
注意:用瀏覽器打開時需要已經(jīng)在抓包模式,否則是無法看到上述頁面的
好了,到這里我們已經(jīng)完成了所有的準(zhǔn)備工作,接下去就和我一起實際體驗一下https的抓包過程吧。
這里以知乎為例,用手機打開知乎,我們應(yīng)該能看到知乎的請求出現(xiàn)在列表里了,類似下圖:
![](/d/20211017/cc4d7da48555439bde5805f11f254782.gif)
鍵盤上下移動,Enter鍵進入查看詳情,按Tab鍵切換頂部導(dǎo)航欄,如下圖所示
![](/d/20211017/d30e54a24878afe0de7960763541fcf2.gif)
Tips:輸入z可以清空列表,輸入f再輸入~uxxx可以過濾出url為xxx的請求,更多匹配規(guī)則輸入?查看
請求攔截
上面演示的是常規(guī)的操作,下面介紹一下mitmproxy的另一強大功能,攔截修改request和response。
輸入i,然后輸入~s再按回車鍵,這時候就進入了response攔截模式。如果輸入~q則進入request的攔截模式,更多的命令可以輸入?查看。攔截模式下的頁面顯示如下圖所示,
![](/d/20211017/b30bce25102ba7dffb8f73b40d71be93.gif)
其中橘紅色的表示請求正被攔截,這時Enter進入后再按e就可以修改request或者response。修改時是用vim進行編輯的,修改完成后按a將請求放行,如果要放行所有請求輸入A即可。
下圖是我修改了某個答案的response請求將回答者的名字做了修改,因為只修改了response并不會影響其他的用戶顯示:)
![](/d/20211017/01fa7eeae1b2e5cac86b7e17a85266e5.gif)
上面提到的那些指令在輸入?后都能查看到,如下圖,另外官網(wǎng)上也有很詳細的說明
![](/d/20211017/4b631d5c7fd6ac54db6fcb5f7db108f1.gif)
我用上述方式嘗試了大多數(shù)的App,包括淘寶、微博,都能抓到https的包,有些有加密,有些沒有加密。但是簡書做了防中間人攻擊的設(shè)置,一啟用抓包模式就顯示網(wǎng)絡(luò)錯誤1012,還是做的很不錯的,贊一個~
按照上面的過程就可以https抓包了,如果有遇到問題可以聯(lián)系我,記得抓完后將手機wifi設(shè)置里的http代理關(guān)閉。開始實際體驗一下吧,enjoy~
更多關(guān)于抓包HTTPS數(shù)據(jù)的文章大家可以參考下面的相碰鏈接
您可能感興趣的文章:- python代理工具mitmproxy使用指南
- python使用mitmproxy抓取瀏覽器請求的方法
- 詳解安裝mitmproxy以及遇到的坑和簡單用法
- python GUI庫圖形界面開發(fā)之PyQt5 Qt Designer工具(Qt設(shè)計師)詳細使用方法及Designer ui文件轉(zhuǎn)py文件方法
- Python解釋器及PyCharm工具安裝過程
- Python監(jiān)控服務(wù)器實用工具psutil使用解析
- Python抓包程序mitmproxy安裝和使用過程圖解