mitmproxy代理

文章目錄

  • mitmproxy
    • 1. 網絡代理
    • 2. 安裝
    • 3. Https請求
      • 3.1 啟動mitmproxy
      • 3.2 獲取證書
      • 3.3 配置代理
      • 3.4 運行測試
    • 4. 請求
      • 4.1 讀取請求
      • 4.2 修改請求
      • 4.3 攔截請求
    • 5. 響應
      • 5.1 讀取響應
      • 5.2 修改響應
    • 6. 案例:共享賬號
      • 6.1 登錄bilibili獲取cookies
      • 6.2 在代理請求中設置cookies

mitmproxy

mitmproxy是一個代理工具(軟件安裝 或 Python模塊安裝),實現代理請求(攔截請求或修改請求)。

1. 網絡代理

網絡代理是一種位于客戶端和服務器之間的中間服務器,它充當客戶端與目標服務器之間的中間人。當客戶端發送請求時,請求首先被發送到代理服務器,然后由代理服務器轉發給目標服務器,并將目標服務器的響應返回給客戶端。

代理服務器的作用可以有多種形式,包括:

  1. 隱藏真實的客戶端IP地址:代理服務器可以屏蔽客戶端的真實IP地址,使目標服務器無法直接獲取到客戶端的真實位置信息。這種方式可以提供一定的匿名性和隱私保護。
  2. 緩存和加速:代理服務器可以緩存目標服務器的響應,當其他客戶端請求相同的資源時,代理服務器可以直接返回緩存的響應,減少了對目標服務器的訪問,提高了訪問速度和網絡效率。
  3. 過濾和訪問控制:代理服務器可以根據設置的規則對請求進行過濾和訪問控制。例如,可以通過代理服務器實現對特定網站或內容的屏蔽,或者對特定客戶端的訪問進行限制。
  4. 突破網絡限制:在某些情況下,代理服務器可以用于突破網絡限制。例如,當訪問某些網站受到地理位置限制或網絡審查時,可以通過使用代理服務器來繞過這些限制。
  5. 負載均衡:代理服務器可以作為負載均衡器,將請求分發到多個目標服務器上,以實現更好的性能和可靠性。

mitmproxy是一款流行的開源代理工具,用于攔截、修改和觀察網絡流量。它可以用于網絡安全測試、調試和逆向工程等場景。

請添加圖片描述

2. 安裝

在安裝前需要去下載Visual C++ Build Tools for Visual Studio 2015安裝到電腦。

https://my.visualstudio.com/Downloads?q=Visual%20Studio%202015%20update%203

請添加圖片描述

解壓 mu_visual_cpp_build_tools_2015_update_3_x64_dvd_dfd9a39c.iso文件,然后默認安裝。

用pip安裝mitmproxy:

pip install mitmproxy

3. Https請求

如果想要讓mitmproxy支持:http和https請求,就需要安裝證書。

3.1 啟動mitmproxy

>>>mitmdump -q  -p 8888 -s test.py

請添加圖片描述

from mitmproxy import httpdef request(flow: http.HTTPFlow):print("請求->", flow.request.url)def response(flow: http.HTTPFlow):...

3.2 獲取證書

在電腦 C:\Users\Administrator\.mitmproxy 中去獲取。

請添加圖片描述

雙擊下載證書

請添加圖片描述

請添加圖片描述
請添加圖片描述

3.3 配置代理

請添加圖片描述

3.4 運行測試

請添加圖片描述

4. 請求

4.1 讀取請求

from mitmproxy import http
from mitmproxy.http import Requestdef request(flow):print("請求-->", flow.request.url)print("請求-->", flow.request.host)print("請求-->", flow.request.path)print("請求-->", flow.request.query)print("請求-->", flow.request.cookies)print("請求-->", flow.request.headers)print("請求-->", flow.request.method)print("請求-->", flow.request.content)def response(flow: http.HTTPFlow):pass

4.2 修改請求

from mitmproxy import httpdef request(flow):flow.request.url = "https://www.baidu.com/"def response(flow: http.HTTPFlow):pass

請添加圖片描述

4.3 攔截請求

可以攔截請求,并放回指定內容

from mitmproxy import http
from mitmproxy.http import HTTPFlow
from mitmproxy.http import Responsedef request(flow: HTTPFlow):if flow.request.url.startswith("https://dig.chouti.com/"):flow.response = Response.make(200,  # (optional) status codeb"Hello World",  # (optional) content{"Content-Type": "text/html"}  # (optional) headers)def response(flow: http.HTTPFlow):pass

請添加圖片描述

也可以直接kill請求

from mitmproxy import http
from mitmproxy.http import Request
from mitmproxy.http import HTTPFlowdef request(flow: HTTPFlow):if flow.request.url.startswith("https://dig.chouti.com/"):flow.kill()def response(flow: http.HTTPFlow):pass

5. 響應

5.1 讀取響應

from mitmproxy import http
from mitmproxy.http import HTTPFlowdef request(flow: HTTPFlow):...def response(flow: http.HTTPFlow):print(flow.request.url)print(flow.response.status_code)print(flow.response.cookies)print(flow.response.headers)print(flow.response.content)

5.2 修改響應

from mitmproxy import http
from mitmproxy.http import HTTPFlow, Responsedef request(flow: HTTPFlow):...def response(flow: http.HTTPFlow):flow.response = Response.make(200,  # (optional) status codeb"Hello World",  # (optional) content{"Content-Type": "text/html"}  # (optional) headers)

請添加圖片描述

6. 案例:共享賬號

6.1 登錄bilibili獲取cookies

from mitmproxy import http
from mitmproxy.http import HTTPFlowdef request(flow: HTTPFlow):print(flow.request.url)print(flow.request.cookies)def response(flow: http.HTTPFlow):...

請添加圖片描述

6.2 在代理請求中設置cookies

from mitmproxy import http
from mitmproxy.http import HTTPFlowdef request(flow: HTTPFlow):print(flow.request.url)print(flow.request.cookies)flow.request.cookies = [['_uuid', 'A98A10A1C-9F33-6339-17E4-CD8671029FB5A86227infoc'],['buvid3', '6F2EA161-81E8-FC5D-692F-FF62C048B83B86528infoc'], ['b_nut', '1709354487'],['buvid4','FDE22D0E-55C2-7A05-BE12-D69A19F71C7586528-024030204-nzup34dDLssl%2BNgRMbI%2BUQ%3D%3D'],['enable_web_push', 'DISABLE'], ['FEED_LIVE_VERSION', 'V8'],['header_theme_version', 'CLOSE'], ['CURRENT_FNVAL', '4048'],['rpdid', "|(~|mm|k)~l0J'u~|mJlRl|m"], ['b_lsid', '6FDF9248_18DFEAFE967'],['home_feed_column', '5'], ['browser_resolution', '1536-239'], ['bili_ticket','eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDk2MzcwNzEsImlhdCI6MTcwOTM3NzgxMSwicGx0IjotMX0.qxpceIj8gLlNQ33eR9d5jxfizfYD_AWX_zpvHAFixY4'],['bili_ticket_expires', '1709637011'], ['bp_video_offset_250595597', '904259047290568723'],['fingerprint', 'bc08d5f7f0d84ff74bf64c3b8cead4fc'], ['buvid_fp_plain', 'undefined'],['buvid_fp', 'bc08d5f7f0d84ff74bf64c3b8cead4fc'], ['SESSDATA','e3f51de8%2C1724929938%2Cb3219%2A32CjDQyE1hfakSZT7vrNGmyYTP3Es7buyebKSAFmqg5JIZOH4RfRvNZRNydfq3JlRMLlcSVjd4SE0xc2I5T0dtVXFMMzBLbnhXZW5QNTNyeUZLVjNteDVaRUZ4V1FSQ2gwSXBCb09NLVFzc2cyRmpsNkJPOE9jVE9xdGlIS3gwZHlQWTJaX182SkZnIIEC'],['bili_jct', 'a74e7345a811680a745797300a7ae525'], ['DedeUserID', '250595597'],['DedeUserID__ckMd5', 'dd8e5953de09a630'], ['sid', 'qmre1dgw']]def response(flow: http.HTTPFlow):...

在配置完cookies后在被代理的電腦打開bilibili會顯示為登錄狀態

請添加圖片描述

若多臺電腦接入代理則可以共享這個賬號

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716594.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716594.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716594.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ER-NeRF實時對話數字人模型訓練與部署

ER-NeRF是基于NeRF用于生成數字人的方法,可以達到實時生成的效果。 下載源碼 cd D:\Projects\ git clone https://github.com/Fictionarry/ER-NeRF cd D:\Projects\ER-NeRF 下載模型 準備面部解析模型 wget https://github.com/YudongGuo/AD-NeRF/blob/master/…

MyBatisPlus入門教程

MyBatisPlus MyBatis-Plus (opens new window)(簡稱 MP)是一個 MyBatis (opens new window) 的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。 官網地址:https://baomidou.com/ 一、入門案…

sql注入之sqli-labs-less-1 錯誤注入

輸入?id1 得到登錄頁面: 通過order by 函數試探: 5的時候報錯 試探到3 的時候返回正確的值: 然后繼續注入:?id -1 union select 1,2,3 -- 查看回顯點: 開始查看數據庫內容:id-1 union select 1,databa…

OpenXR 超詳細的spec--API初始化介紹

3.API 初始化 3.2 Function Pointers XrResult xrGetInstanceProcAddr(XrInstance instance,const char* name,PFN_xrVoidFunction* function); instance: XrInstance類型&#…

open-spider開源爬蟲工具:抖音數據采集

在當今信息爆炸的時代,網絡爬蟲作為一種自動化的數據收集工具,其重要性不言而喻。它能夠幫助我們從互聯網上高效地提取和處理數據,為數據分析、市場研究、內容監控等領域提供支持。抖音作為一個全球性的短視頻平臺,擁有海量的用戶…

CKA考生注意:這些Deployment要點能助你一臂之力!

往期精彩文章 : 提升CKA考試勝算:一文帶你全面了解RBAC權限控制!揭秘高效運維:如何用kubectl top命令實時監控K8s資源使用情況?CKA認證必備:掌握k8s網絡策略的關鍵要點提高CKA認證成功率,CKA真題中的節點維…

68-解構賦值,迭代器,生成器函數

1.解構賦值(針對數組array&#xff0c;字符串String及對象object以) 結構賦值是一種特殊的語法&#xff0c;通過將各種結構中的元素復制到變量中達到"解構"的目的&#xff0c;但是數組本身沒有改變 1.1解構單層數組 <script>let arr [1,2,3,4,5];//獲取數組…

c++ primer學習筆記(一)

目錄 第一章、c快速入門 重點&#xff1a;類的簡介 第二章 1、基本內置類型 2、字面值常量 1、整型字面值規則 2、浮點字面值規則 3、布爾字面值 4、字符字面值 5、非打印字符的轉義序列 ?編輯 6、字符串字面值 3、變量 1、變量標識符 2、定義和初始化對象 3、…

leetcode 1328.破壞回文串

題目鏈接LeetCode1328 1.題目 給你一個由小寫英文字母組成的回文字符串 palindrome &#xff0c;請你將其中 一個 字符用任意小寫英文字母替換&#xff0c;使得結果字符串的 字典序最小 &#xff0c;且 不是 回文串。 請你返回結果字符串。如果無法做到&#xff0c;則返回一個…

java: 無法訪問org.springframework.web.bind.annotation.RequestMapping......類文件具有錯誤的版本 61.0, 應為 52.0

文章目錄 一、報錯問題二、問題背景三、原因分析四、解決方案 一、報錯問題 java: 無法訪問org.springframework.web.bind.annotation.RequestMapping 錯誤的類文件: /D:/SoftwareInstall/Maven/repository/org/springframework/spring-web/6.0.9/spring-web-6.0.9.jar!/org/s…

latex報錯Repeated entry解決辦法

報錯原因——重復了兩個參考文獻&#xff0c;刪掉一個即可 總結 "Repeated entry"這個錯誤通常出現在你嘗試在LaTeX中多次使用同一個標簽&#xff08;label&#xff09;或者多次插入相同的圖像/表格等時。例如&#xff0c;在LaTeX中&#xff0c;我們可能會為每一個章…

Modern C++ std::any為何要求Tp可拷貝構造?

小問題也會影響設計的思路&#xff0c;某個問題或某種case的探討有助于理解設計的初衷。 聲明&#xff1a;以下_Tp/Tp都是指要放入std::any的對象的類型。 它要求_Tp is_copy_constructible, 僅僅是因為有很多函數的實現調用了Tp的拷貝構造函數嗎&#xff1f;比如說上節提到的初…

動態SQL的處理

學習視頻&#xff1a;3001 動態SQL中的元素_嗶哩嗶哩_bilibili 目錄 1.1為什么學 1.2動態SQL中的元素 條件查詢操作 if 元素 choose、when、otherwise元素 where、trim元素 更新操作 set元素使用場景 復雜查詢操作 foreach 元素中的屬性 ?編輯 迭代數組 迭代List 迭代Map 1…

代碼隨想錄算法訓練營第二十七天|LeetCode93 復原IP地址、LeetCode78 子集、LeetCode90 子集II

93.復原IP地址 思路&#xff1a;要建立一個判斷子字符串是否合法的函數&#xff0c;判斷多種不合法的情況。在回溯函數中&#xff0c;參數除了s,和startindex還需要一個pointNum來記錄句點的數量&#xff0c;當句點的數量等于3時&#xff0c;判斷最后一個子串是否合法&#xf…

第3部分 原理篇2去中心化數字身份標識符(DID)(4)

3.2.3. DID解析 3.2.3.1. DID解析參與方 圖3-5 DID 解析過程 本聰老師&#xff1a;我們之前提到過&#xff0c;DID 解析過程是將 DID 轉換為對應的 DID 文檔。這樣做的目的是驗證 DID 所代表的主體的身份。那么解析過程會涉及哪些概念呢&#xff1f;我們看圖3-&#xff0c;DI…

端智能:面向手機計算環境的端云協同AI技術創新

近年來&#xff0c;隨著移動端設備軟硬件能力的進步&#xff0c;移動端的算力有了很大提升&#xff0c;同時面向移動端的機器學習框架和模型輕量化技術越來越成熟&#xff0c;端上的AI能力逐漸進入大眾視野&#xff0c;端智能在電商領域也開始逐步走向規模化應用。通過持續探索…

leetcode日記(35)跳躍游戲Ⅱ

想了一個晚上&#xff0c;第一個思路是用動態規劃&#xff0c;記錄走到每一個節點需要跳動的最小步數&#xff0c;大致方法是每走到一個節點就遍歷一下前面的全部節點&#xff0c;看看哪個節點可以一部跳到該節點&#xff0c;然后從中選取跳躍步數最小的節點&#xff0c;最后輸…

完美解決多個Echarts圖表自適應窗口、父容器寬高,并進行性能優化

場景 很多時候我們會在繪制echarts圖表時&#xff0c;使用以下方法監聽瀏覽器尺寸變化&#xff0c;讓圖表resize()完成自適應 window.addEventListener(resize, ()>{wordCloudChart.resize() })然后&#xff0c;這種自適應真的足夠周全嘛&#xff1f;有些時候&#xff0c;…

多元正態分布(Multivariate Normal Distribution)

多元正態分布&#xff08;Multivariate Normal Distribution&#xff09;&#xff0c;也稱為多變量高斯分布&#xff0c;是單變量正態分布&#xff08;高斯分布&#xff09;在多維空間中的推廣。它是描述位于多維空間中的隨機向量的分布情況的一種概率分布。多元正態分布在統計…

基于springboot+vue的城鎮保障性住房管理系統(前后端分離)

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…