mitmproxy 代理介紹及入門


轉載請注明出處 https://www.cnblogs.com/majianming/p/11823669.html
mitmproxy 是一個python 寫成的代理工具,可以代理https、http等協議

重點是 可以自定義腳本 例如獲取請求信息並保存到數據庫,修改響應等等的操作(眨眼)

可以使用pip形式安裝也可以使用編譯好的二進制文件安裝 (二進制文件 下載地址https://mitmproxy.org/downloads/)

但是 如果你需要自定義腳本而且安裝第三方庫的話 需要使用pip形式的安裝

pip 形式的安裝,首先保證你有安裝了python 已經pip

下面以windows 安裝為例

如果是windows 系統 還需要安裝Microsoft Build Tools( https://www.microsoft.com/en-us/download/confirmation.aspx?id=48159)

然后

執行

pip install mitmproxy

如果需要在任何地方都能執行命令 ,那么最好按照提示將類似 C:\Users\User\AppData\Roaming\Python\Python37\Scripts 的路徑加入系統環境Path ,否則 你可能需要一直使用全路徑的形式訪問

安裝成功之后 上述路徑下應該有 這些可執行文件

mitmweb.exe和mitmproxy.exe是可視化的代理程序

mitmproxy.exe打開會在控制台顯示所有代理請求,但是windows下不可用,

mitmweb.exe 會打開默認的瀏覽器並顯示所有代理請求

默認代理監聽端口為8080 可以在命令行中 -p 8081 這里使用8080 端口 命令mitmweb (mitmweb -p 8080 )啟動

接着我們在瀏覽器中實驗效果 為了方便 我們使用

SwitchyOmega(https://chrome.google.com/webstore/detail/padekgcemlokbadohgkifijomclgjgif)進行代理切換



然后在 選擇使用剛剛創建的代理就可以了

然后訪問一個網站 就可以在剛剛彈出來的窗口中看到所有的請求了 (如果是https 系統需要導入證書 證書一般在用戶目錄的.mitmproxy文件夾中,

如果是火狐,因為mitmproxy 的根證書不是使用瀏覽器的證書信任關系(火狐自己有一套證書體系),所以 需要在設置→ 隱私和安全->安全->證書->查看證書→證書頒發機構→導入 導入證書)

如果需要些腳本

可以參考一下的格式 這個腳本是將登錄請求保存下來 並把信息發送到指定的服務器上

import time

import mitmproxy.http
import requests
from mitmproxy import ctx

intercept_url = "xx"
report_server_url = "xxxx"


class LoginIntercept:

    def request(self, flow: mitmproxy.http.HTTPFlow):
        if intercept_url in flow.request.pretty_url:
            ctx.log.info("監聽地址 %s" % flow.request.pretty_url)
            ctx.log.info("請求頭 %s" % flow.request.headers)
            info = {
                "url": flow.request.pretty_url,
 "headers": str(flow.request.headers),
 }
            init_data = {"update_timestamp": int(time.time()),
 "info": info}
            try:
                requests.post(report_server_url, json=init_data,timeout=2)
            except Exception as e:
                ctx.log.error("更新信息失敗!原因【%r】" % e)


addons = [
    LoginIntercept()
]

命令行 mitmweb -p 8080 -s script.py 啟動
轉載請注明出處 https://www.cnblogs.com/majianming/p/11823669.html


參考

官網文檔 https://mitmproxy.org/

github例子 https://github.com/mitmproxy/mitmproxy/tree/master/examples


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM