河南网站开发,建设银行内部学习网站,北京企业网站建站哪家好,导出wordpress到文本文章目录 mitmproxy1. 网络代理2. 安装3. Https请求3.1 启动mitmproxy3.2 获取证书3.3 配置代理3.4 运行测试 4. 请求4.1 读取请求4.2 修改请求4.3 拦截请求 5. 响应5.1 读取响应5.2 修改响应 6. 案例#xff1a;共享账号6.1 登录bilibili获取cookies6.2 在代理请求中设置cook… 文章目录 mitmproxy1. 网络代理2. 安装3. Https请求3.1 启动mitmproxy3.2 获取证书3.3 配置代理3.4 运行测试 4. 请求4.1 读取请求4.2 修改请求4.3 拦截请求 5. 响应5.1 读取响应5.2 修改响应 6. 案例共享账号6.1 登录bilibili获取cookies6.2 在代理请求中设置cookies mitmproxy mitmproxy是一个代理工具软件安装 或 Python模块安装实现代理请求拦截请求或修改请求。 1. 网络代理 网络代理是一种位于客户端和服务器之间的中间服务器它充当客户端与目标服务器之间的中间人。当客户端发送请求时请求首先被发送到代理服务器然后由代理服务器转发给目标服务器并将目标服务器的响应返回给客户端。 代理服务器的作用可以有多种形式包括
隐藏真实的客户端IP地址代理服务器可以屏蔽客户端的真实IP地址使目标服务器无法直接获取到客户端的真实位置信息。这种方式可以提供一定的匿名性和隐私保护。缓存和加速代理服务器可以缓存目标服务器的响应当其他客户端请求相同的资源时代理服务器可以直接返回缓存的响应减少了对目标服务器的访问提高了访问速度和网络效率。过滤和访问控制代理服务器可以根据设置的规则对请求进行过滤和访问控制。例如可以通过代理服务器实现对特定网站或内容的屏蔽或者对特定客户端的访问进行限制。突破网络限制在某些情况下代理服务器可以用于突破网络限制。例如当访问某些网站受到地理位置限制或网络审查时可以通过使用代理服务器来绕过这些限制。负载均衡代理服务器可以作为负载均衡器将请求分发到多个目标服务器上以实现更好的性能和可靠性。
mitmproxy是一款流行的开源代理工具用于拦截、修改和观察网络流量。它可以用于网络安全测试、调试和逆向工程等场景。 2. 安装
在安装前需要去下载Visual C Build Tools for Visual Studio 2015安装到电脑。
https://my.visualstudio.com/Downloads?qVisual%20Studio%202015%20update%203 解压 mu_visual_cpp_build_tools_2015_update_3_x64_dvd_dfd9a39c.iso文件然后默认安装。
用pip安装mitmproxy
pip install mitmproxy3. Https请求
如果想要让mitmproxy支持http和https请求就需要安装证书。
3.1 启动mitmproxy
mitmdump -q -p 8888 -s test.pyfrom 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):pass4.2 修改请求
from mitmproxy import httpdef request(flow):flow.request.url https://www.baidu.com/def response(flow: http.HTTPFlow):pass4.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 codebHello 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):pass5. 响应
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 codebHello 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)~l0Ju~|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会显示为登录状态 若多台电脑接入代理则可以共享这个账号