mitmproxy就是用于MITM的proxy,MITM即中間人攻擊(Man-in-the-middle attack),用于中間人攻擊的代理首先會向正常的代理一樣轉發請求,保障服務端與客戶端的通信,其次會實時查、記錄其截獲的資料或篡改資料,引發服務端或客戶端特定的行為,
不同于Fiddler或Wireshark等抓包工具,mitmproxy不僅可以截獲請求幫助開發者查看、分析,還可以通過自定義腳本進行二次開發,
利用Fiddler可以過濾出瀏覽器對某個特定URL的請求,并查看、分析其資料,
但實作不了高度定制化的需求,類似于:“截獲對瀏覽器對該URL的請求,將回傳內容置空,并將真實的回傳內容存到某個資料庫,出現例外時發出郵件通知”,而對于mitmproxy,這樣的需求可以通過載入自定義python腳本輕松實作,
但mitmproxy并不會真的對無辜的人發起中間人攻擊,由于mitmproxy作業在HTTP層,而當前HTTPS的普及讓客戶端擁有了檢測并規避中間人攻擊的能力,所以要讓mitmproxy 能夠正常作業,必須要讓客戶端(APP 或瀏覽器)主動信任 mitmproxy 的SSL證書,或忽略證書例外,這也就意味著APP或瀏覽器是屬于開發者本人的——顯而易見,這不是在做黑產,而是在做開發或測驗,
目前比較廣泛的應用是做仿真爬蟲,即利用手機模擬器、無頭瀏覽器來爬取APP或網站的資料,mitmproxy作為代理可以攔截、存盤爬蟲獲取到的資料,或修改資料調整爬蟲的行為,
(1).安裝Python2、Python3環境
(2).App爬蟲神器mitmproxy
Mac/Windows環境安裝mitmproxy
python3
pip3 install mitmproxy
或者
python2
pip install mitmproxy
(3).按鍵精靈
(4).強制抓包工具postern
https://github.com/postern-overwal/postern-stuff
啟動mitmproxy
要啟動mitmproxy用mitmproxy、mitmdump、mitmweb這三個命令中的任意一個即可,這三個命令功能一致,且都可以加載自定義腳本,唯一的區別是互動界面的不同,
mitmproxy命令啟動后,會提供一個命令列界面,用戶可以實時看到發生的請求,并通過命令過濾請求,查看請求資料
使用mitmproxy + python做攔截代理
https://blog.wolfogre.com/posts/usage-of-mitmproxy/
https://mitmproxy.org/







設定代理地址和埠

然后在瀏覽器中訪問地址前,先選擇代理方式,再進行訪問

安裝證書
正常情況下,mitmproxy啟動后,只能抓取到HTTP請求的資訊,要抓取HTTPS請求資訊需要安裝證書,證書安裝有兩種方式
如果沒有打開mitmproxy進行抓包的話,在這一步會得到如下錯誤

如果打開mitmproxy進行抓包的話

使用的mitmproxy啟動
使用的mitmweb啟動
使用的mitmdump啟動


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/302449.html
標籤:其他
上一篇:linux系統安全及應用
下一篇:高效學習 & 程式員練級攻略
