前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >最佳网络数据抓包工具mitmproxy

最佳网络数据抓包工具mitmproxy

作者头像
测试加
发布2022-06-21 16:23:25
7410
发布2022-06-21 16:23:25
举报

介绍

日常测试客户端需求,经常会使用Fiddler、Charles工具,抓取网络请求内容。Fiddler、Charles也有使用上的不足,比如Fiddler仅支持winsows、Charles是收费的,另外Fiddler、Charles在扩展开发脚本上都比较薄弱。

今天就来介绍兼容性强、扩展性强并且免费的代理工具mitmproxy。mitmproxy是一款免费、开放的基于Python开发的交互式HTTPS代理工具。

工作原理如下:

特性:

  • 1、支持Web
  • 2、支持终端
  • 3、支持Python脚本
  • 4、可以记录和重放

官方文档:

https://docs.mitmproxy.org/stable/

githu地址:

https://github.com/mitmproxy/mitmproxy.git

mitmproxy与Fiddler、Charles对比

安装

在mac环境下安装命令如下:

代码语言:javascript
复制
pip3 install mitmproxy

brew install mitmproxy

mitmproxy提供了三个命令,启动模式不同:

  • mitmproxy: 提供一个命令行界面。
  • mitmweb:提供一个浏览器界面。
  • mitmdump: 提供一个简单的终端输出。

运行命令

mitmproxy

命令行终端执行mitmproxy命令,会出现一个命令行页面,展示请求列表:请求、响应、详情三个部分,可以通过上下键切换tab。

mitmweb

命令行终端执行mitmweb命令,会自动打开浏览器,http://127.0.0.1:8081,手机或者PC连接代理地址:http://*:8080。

mitmweb页面和Charles的页面基本上功能差不多,可以进行查看数据包请求、请求重试、过滤等。

mitmdump

mitmdump是mitmprxoy的命令行接口,可以实时监控请求,可以对接Python对请求进行处理,有了它我们可以不用手动截获和分析HTTP请求和响应,只需要写好请求和响应的处理逻辑即可。

另外mitmdump可以实现数据的解析、存储等工作,这些过程都可以通过Python实现。

先准备一个py文件如scripts.py,修改请求和响应。

修改请求

修改请求头的agent字段值是MitmProxy。

代码语言:javascript
复制
from mitmproxy import flow

def request(flow):
    flow.request.headers["agent"] = "MitmProxy"
    print(flow.request.headers["agent"])

修改响应

修改响应结果的状态码为418。

代码语言:javascript
复制
from mitmproxy import http

def request(flow: http.HTTPFlow):
    if flow.request.path.endswith("/brew"):
         flow.response = http.HTTPResponse.make(
            418, b"I'm a teapot",
        )

编写完成脚本后,执行命令: mitmdump -s script.py

结语

本文介绍了mitmproxy代理工具的简单介绍,后续会介绍mitmproxy的高阶功能和在工作中的一些实践。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试加 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • mitmproxy与Fiddler、Charles对比
    • 安装
    • 运行命令
      • mitmproxy
        • mitmweb
          • mitmdump
            • 修改请求
              • 修改响应
              • 结语
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档