前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python抓包代理库mitmproxy

python抓包代理库mitmproxy

原创
作者头像
JQ实验室
发布2022-11-04 08:11:42
1K0
发布2022-11-04 08:11:42
举报
文章被收录于专栏:实用技术

python中一个库mitmproxy,可以实现抓包;实现的就是代理的功能;相对于其他软件,优势在于可以编码;

mitmproxy是一个抓包工具,类似于WireShark、Filddler,并且它支持抓取HTTP和HTTPS协议的数据包,只不过它是一个控制台的形式操作。另外,它还有两个非常有用的组件,一个mitmdump,它是mitmproxy的命令行接口,利用它可以对接python脚本;另一个是mitmweb,它是一个web程序,通过它可以清楚的观察mitmproxy捕获的数据情况,优点类似于Chrome浏览器。

安装库:

代码语言:txt
复制
pip install mitmproxy
完成后,系统将拥有 mitmproxy、mitmdump、mitmweb 三个命令,
测试一下安装是否成功,执行:
mitmproxy --version

官方文档:在这里

安装证书:

执行mitmproxy命令后,会在用户目录下生成证书; C:\Users\Administrator.mitmproxy

在这里插入图片描述
在这里插入图片描述

点击证书,直接安装;

设置网络代理:

代码语言:txt
复制
若要抓包,必须设置网络代理;

以下已win10系统为例:

首先进入电脑系统后,点击“开始-设置”。进入开始-设置后,点击“网络Internet”。进入网络Internet后,点击“代理”。

在这里插入图片描述
在这里插入图片描述

进入代理后,找到手动设置代理,开启“使用代理服务器”。开启代理服务器后,填写相应“参数”,点击“保存”。

在这里插入图片描述
在这里插入图片描述

mitmproxy的默认地址是http://127.0.0.1:8080;

开始抓包

  • mitmproxy
    在这里插入图片描述
    在这里插入图片描述
  • mitmweb 输入命令,打开web页面:
    在这里插入图片描述
    在这里插入图片描述
  • 编码方式mitmdump
代码语言:txt
复制
from mitmproxy import http
#将请求新增了一个查询参数
def request(flow: http.HTTPFlow):
    flow.request.query["mitmproxy"] = '8.0'

#将响应头中新增了一个自定义头字段
def response(flow: http.HTTPFlow):
  flow.response.headers["mitm"] = 'foo'
  #print(flow.response.text)

保存以上文件为demo.py

然后执行命令:

mitmdump -s demo.py

接口实现接口拦截修改;当然也可以实现抓包了

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档