爬虫从入门到精通(18) |Python抓包工具Mitmproxy介绍

在这里插入图片描述

一、前言

除了我们的抓包软件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

在这里插入图片描述

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张烫麻辣亮。

谢谢老板支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值