目录:

  mitmproxy简介

  安装

  Windows上使用mitmproxy

  mitmweb的使用

  Linux上使用mitmproxy

 

mitmproxy简介

mitmproxy 是一个免费开源的交互式HTTPS代理。

github地址:https://github.com/mitmproxy/mitmproxy/

安装

  1. 你可以下载客户端

             https://mitmproxy.org/downloads/

  1. mitmproxy 是基于Python 开发的库,也可以通过 pip安装。
    pip install mitmproxy

    注:windows上安装失败,需要安装Microsoft visual c++ v14.0以上

使用

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

  • mitmproxy -> 提供一个命令行界面(该命令不支持windows)。
  • mitmdump -> 提供一个简单的终端输出。
  • mitmweb -> 提供一个浏览器界面。

注:Linux经常用mitmproxy来抓包

     Windows经常用mitmweb来抓包

       mitmdump用来与Python交互

 

Windows上使用mitmproxy:

     mitmdump --version 查看版本

  1.在cmd中输入mitmdump -w test.txt(可以将抓到的包的信息存到test.txt中)

        (默认监听8080端口,则浏览器代理也要设置成8080端口)

 

  2.ipconfig查看IP:192.168.253.128

  3.打开Chrome浏览器,设置switchomega:  新建情景模式--mitmproxy--创建

 

  Chrome切换到mitmproxy代理,访问百度,会出现以下页面,需要安装mitmproxy证书

  4.访问mitm.it来选择操作系统安装证书(安装过程中会需要密码,可以不填直接下一步,证书存储位置选择受信任的根证书颁发机构)

  5.重启Chrome,此时访问百度,就可以抓到包了(数据流都存到了test.txt中,可以打开test.txt来查看)

编写 Mitmproxy 自定义脚本,这才是 Mitmproxy 真正强大的在方。

Mitmproxy官方给了很多例子:

https://docs.mitmproxy.org/stable/addons-examples/

我们演示一个简单的例子 http-add-header.py, 为每一个 response 中增一个数字,标明当前是第几个请求。

"""Add an HTTP header to each response."""


class AddHeader:
    def __init__(self):
        self.num = 0

    def response(self, flow):
        self.num = self.num + 1
        flow.response.headers["count"] = str(self.num)

addons = [
    AddHeader()
]

 

mitmweb的使用:

  在cmd中直接输入 mitmweb 会在浏览器中弹出一个页面,此时在浏览器中访问其他网站就可以抓包了

 

 

 

Linux上使用mitmproxy:

  mitmproxy --version 查看版本

  1.在终端中输入mitmproxy然后回车(默认监听8080端口,则浏览器代理也要设置成8080端口),

  2.ifconfig查看IP:192.168.253.128

  3.打开Chrome浏览器,设置switchomega:  新建情景模式--mitmproxy--创建

 

  Chrome切换到mitmproxy代理,访问百度,会出现以下页面,需要安装mitmproxy证书

  4.访问mitm.it来选择操作系统安装证书(安装过程中会需要密码,可以不填直接下一步,证书存储位置选择受信任的根证书颁发机构)

  5.重启Chrome,此时访问百度,就可以抓到包了(flows下的数据流)

     上下键可以选择要查看的请求URL,回车可以看详情

          在详情页面按tab键可以在request、response、detail中切换,按esc再按q退回到flows数据流页面

 

posted on 2021-01-20 22:01  始终不够啊  阅读(672)  评论(0)    收藏  举报