您好,登錄后才能下訂單哦!
mitmproxy怎么在python中使用?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
mitmproxy 是 man-in-the-middle proxy 的簡稱,譯為中間人代理工具,可以用來攔截、修改、保存 HTTP/HTTPS 請求。以命令行終端形式呈現,操作上類似于Vim,同時提供了 mitmweb 插件,是類似于 Chrome 瀏覽器開發者模式的可視化工具。
它是基于Python開發的開源工具,最重要的是它提供了Python API,你完全可以通過Python代碼來控制請求和響應,這是其它工具所不能做到的,這點也是我喜歡這個工具的原因之一。
安裝
sudo pip3 install mitmproxy
啟動
mitmproxy #或者指定端口 mitmproxy -p 8888
啟動 mitmproxy 之后,默認開啟8080端口, mitmproxy 命令不支持Windows平臺,需要使用 mitmdump 或者 mitmweb 命令代替。Windows系統也可以在官網下載它的EXE文件進行安裝。
手機或者瀏覽器設置好代理之后,就可以進行抓包分析了,打開瀏覽器訪問某個網址,mitmproxy 看到的效果是:
當前一共有136個請求,當前選擇的是第16個請求,請求方法是 GET, 返回的狀態碼是200,代理的端口是8080,通過 J、K 鍵可上下切換到不同的請求,回車可以看到當前選中的請求詳情,包括三部分,Request和Response還有 Detail
mitmproxy 快捷鍵
? 幫助文檔 q 返回/退出程序 b 保存response body f 輸入過濾條件 k 上 j 下 h 左 l 右 space 翻頁 enter 進入接口詳情 z 清屏 e 編輯 r 重新請求
HTTPS 抓包配置
對于HTTPS請求,為了能正常抓到請求,需要先安裝證書。沒安裝證書的請求看到的效果是這樣的。
打開網址http://mitm.it , 選擇匹配的平臺,下載 HTTPS 證書。并按照對應的步驟進行安裝
mitmweb
$ mitmweb
啟動 mitmweb 命令后,會有一個類似Chrome開發者工具的Web頁面,功能上類似mitmroxy,一樣可以查看每個請求的詳情,包括請求、響應,還可以對請求和響應內容進行修改,包括過濾、重新發送請求等常用功能。
mitmdump
$ mitmdump -s script.py
mitmdump 命令最大的特點就是可以自定義腳本,你可以在腳本中對請求或者響應內容通過編程的方式來控制,實現數據的解析、修改、存儲等工作
# script.py from mitmproxy import http def request(flow: http.HTTPFlow) -> None: # 將請求新增了一個查詢參數 flow.request.query["mitmproxy"] = "rocks" def response(flow: http.HTTPFlow) -> None: # 將響應頭中新增了一個自定義頭字段 flow.response.headers["newheader"] = "foo" print(flow.response.text)
當你在瀏覽器請求http://httpbin.org/get ,看到的效果:
看完上述內容,你們掌握mitmproxy怎么在python中使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。