您当前的位置: 首页 >  Python
  • 0浏览

    0关注

    214博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

第23篇-Python抓包工具Mitmproxy介绍

不愿透露姓名の网友 发布时间:2022-02-11 15:34:52 ,浏览量:0

文章目录
  • 一、前言
  • 二、安装mitmproxy工具
  • 三、mitmdump
  • 四、mitmweb
  • 五、编写脚本

在这里插入图片描述

一、前言

除了我们的抓包软件fiddler和Charles,我们今天再介绍一款抓包工具mitmproxy。

不同于 fiddler 或 wireshark 等抓包工具,mitmproxy 不仅可以截获请求帮助开发者查看、分析,更可以通过自定义脚本进行二次开发。举例来说,利用 fiddler 可以过滤出浏览器对某个特定 url 的请求,并查看、分析其数据,但实现不了高度定制化的需求,类似于:“截获对浏览器对该 url 的请求,将返回内容置空,并将真实的返回内容存到某个数据库,出现异常时发出邮件通知”。而对于 mitmproxy,这样的需求可以通过载入自定义 python 脚本轻松实现。

二、安装mitmproxy工具
pip install mitmproxy

查看是否安装成功

mitmdump --version

在这里插入图片描述

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

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

mitmdump是mitmproxy所提供的命令之一。它提供类似于tcpdump的功能,让您可以查看、记录和以编程方式转换HTTP流量。

1.启动监听

>>mitmdump -w d://log.txt
Proxy server listening at http://*:8080

2.启动浏览器 这里以360极速浏览器为例,因为可以方便修改代理 在这里插入图片描述 然后进入百度,会发现刚才的d盘目录生成了log.txt 在这里插入图片描述 在这里插入图片描述

四、mitmweb

我们在命令行直接输入mitmweb,会发现我们进入一个web页面,是可视化的抓包页面 在这里插入图片描述

360极速浏览器链接80代理后,我们访问百度,会抓到如下的包 在这里插入图片描述

五、编写脚本

mitmproxy最厉害的功能当然是对截获的数据 ,通过脚本进行一些特定事情的修改!

编写一个 demo.py 文件供 mitmproxy 加载,文件定义了变量 addons,addons 是个数组,每个元素是一个类实例,这些类有若干方法,这些方法实现了某些 mitmproxy 提供的事件,mitmproxy 会在某个事件发生时调用对应的方法。这些类,称为一个个 addon,比如一个叫 Counter 的 addon:

# coding: utf-8 
# Author:Qinfan
# Time  : 2022/2/11 14:59

import mitmproxy.http
from mitmproxy import ctx


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

    def request(self, flow: mitmproxy.http.HTTPFlow):
        self.num = self.num + 1
        ctx.log.info("第%d个flows" % self.num)


addons = [
    Counter()
]

命令行运行

mitmweb -s demo.py

访问百度 在这里插入图片描述 其他篡改可以参考:

https://www.cnblogs.com/grandlulu/p/9525417.html

在这里插入图片描述

关注
打赏
1657102503
查看更多评论
立即登录/注册

微信扫码登录

0.0464s