实战|手把手教你如何使用抓包神器MitmProxy

摘要:
你好,我是陈。今天,我将教您如何使用MitmProxy数据包捕获工具。爬虫知道除了MitmProxy之外还有很多数据包捕获工具,比如Fiddler、Charles和浏览器netwrok。他们为什么使用MitmProxy??今天使用MitmProxy数据包捕获工具的主要原因如下:不需要安装软件。在直接在线(浏览器)捕获数据包的过程中,结合Python脚本数据包捕获和数据包捕获,所有数据包都可以自动保存在txt中,用于过滤分析相对简单,易于使用。

大家好,我是阿辰,今天教大家如何使用MitmProxy抓包工具。

玩爬虫的小伙伴都知道,抓包工具除了MitmProxy外,还有Fiddler、Charles以及浏览器netwrok等

既然都有这么多抓包工具了,为什么还要会用MitmProxy呢??今天教大家使用MitmProxy抓包工具的原因,主要有以下几点:

  1. 不需要安装软件,直接在线(浏览器)进行抓包(包括手机端和PC端)

  2. 配合Python脚本抓包改包(下面会有案例)

  3. 抓包过程的所有数据包都可以自动保留到txt里面,方便过滤分析

  4. 使用相对简单,易上手。

1

配置MitmProxy

MitmProxy可以说是客户端,也可以说是一共python库

方式一:客户端

https://mitmproxy.org/downloads/

在这个地址下可以下载对应的客户端安装即可

实战|手把手教你如何使用抓包神器MitmProxy第1张

方式二:Python库

pip install mitmproxy

通过这个pip命令可以下载好MitmProxy,下面将会以Python库的使用方式给大家讲解如何使用(推荐方式二)

2

启动MitmProxy

MitmProxy启动有三个命令(三种模式)

  1. mitmproxy,提供命令行界面

  2. mitmdump,提供一个简单的终端输出(还可以配合Python抓包改包)

  3. mitmweb,提供在线浏览器抓包界面

mitmdump启动

mitmdump -w d://lyc.txt

实战|手把手教你如何使用抓包神器MitmProxy第2张

这样就启动mitmdump,接着在本地设置代理Ip是本机IP,端口8080

实战|手把手教你如何使用抓包神器MitmProxy第3张

安装证书

访问下面这个链接

http://mitm.it/

实战|手把手教你如何使用抓包神器MitmProxy第4张

可以选择自己的设备(window,或者Android、Apple设备去)安装证书。

然后随便打开一个网页,比如百度

实战|手把手教你如何使用抓包神器MitmProxy第5张

这里是因为证书问题,提示访问百度提示https证书不安全,那么下面开始解决这个问题,因此就引出了下面的这种启动方式

浏览器代理式启动

哪一个浏览器都可以,下面以Chrome浏览器为例(其他浏览器操作一样)

先找到chrome浏览器位置,我的chrome浏览器位置如下图

实战|手把手教你如何使用抓包神器MitmProxy第6张

通过下面命令启动

"C:UsersAdministratorAppDataLocalGoogleChromeApplicationchrome.exe" --proxy-server=127.0.0.1:8080 --ignore-certificate-errors

--proxy-server是设置代理和端口

--ignore-certificate-errors是忽略证书

然后会弹出来Chrome浏览器,接着我们搜索知乎

实战|手把手教你如何使用抓包神器MitmProxy第7张

在cmd中就可以看到数据包

实战|手把手教你如何使用抓包神器MitmProxy第8张

这些文本数据可以在编程中进行相应的操作,比如可以放到python中进行过来监听处理。

3

启动Mitmweb

新开一个cmd(终端)窗口,输入下来命令启动mitmweb

mitmweb

实战|手把手教你如何使用抓包神器MitmProxy第9张

之后会在浏览器自动打开一个网页(其实手动打开也可以,地址就是:http://127.0.0.1:8081)

实战|手把手教你如何使用抓包神器MitmProxy第10张

现在页面中什么也没有,那下面我们在刷新一个知乎页面

重点:关闭mitmproxy终端!关闭mitmproxy终端!关闭mitmproxy终端!

如果不改变在mitmweb中获取不到数据,数据只在mitmproxy中,因此需要关闭mitmproxy这个命令终端

刷新知乎页面之后如下:

实战|手把手教你如何使用抓包神器MitmProxy第11张

在刚刚的网页版抓包页面就可以看到数据包了

实战|手把手教你如何使用抓包神器MitmProxy第12张

并且还包括https类型,比如查看其中一个数据包,找到数据是对应的,说明抓包成功。

实战|手把手教你如何使用抓包神器MitmProxy第13张

4

配合Python脚本

mitmproxy代理(抓包)工具最强大之处在于对python脚步的支持(可以在python代码中直接处理数据包)

下面开始演示,先新建一个py文件(lyc.py)

from mitmproxy import ctx


# 所有发出的请求数据包都会被这个方法所处理
# 所谓的处理,我们这里只是打印一下一些项;当然可以修改这些项的值直接给这些项赋值即可
def request(flow):
    # 获取请求对象
    request = flow.request
    # 实例化输出类
    info = ctx.log.info
    # 打印请求的url
    info(request.url)
    # 打印请求方法
    info(request.method)
    # 打印host头
    info(request.host)
    # 打印请求端口
    info(str(request.port))
    # 打印所有请求头部
    info(str(request.headers))
    # 打印cookie头
    info(str(request.cookies))
# 所有服务器响应的数据包都会被这个方法处理
# 所谓的处理,我们这里只是打印一下一些项
def response(flow):
    # 获取响应对象
    response = flow.response
    # 实例化输出类
    info = ctx.log.info
    # 打印响应码
    info(str(response.status_code))
    # 打印所有头部
    info(str(response.headers))
    # 打印cookie头部
    info(str(response.cookies))
    # 打印响应报文内容
    info(str(response.text))
    

在终端中输入一下命令启动

mitmdump.exe -s lyc.py

实战|手把手教你如何使用抓包神器MitmProxy第14张

‍‍‍‍‍‍‍(PS:这里需要通过另一个端启动浏览器)

"C:UsersAdministratorAppDataLocalGoogleChromeApplicationchrome.exe" --proxy-server=127.0.0.1:8080 --ignore-certificate-errors

然后访问网页(http://www.chenlove.cn),这里就以我自己的个人网站为例

实战|手把手教你如何使用抓包神器MitmProxy第15张

在终端中就可以看到信息

实战|手把手教你如何使用抓包神器MitmProxy第16张

实战|手把手教你如何使用抓包神器MitmProxy第17张

这些信息就是我们在lyc.py中指定的显示信息。

PS:

在手机上配置好代理之后,mitmproxy同样可以抓取手机端数据,这里的具体操作和我之前这篇文章一样【以某乎为实战案例,教你用Python爬取手机App数据】,只不过是抓包工具不一样而已。

5

小结

  1. 不需要安装软件,直接在线(浏览器)进行抓包(包括手机端和PC端)

  2. 配合Python脚本抓包改包。

  3. 抓包过程的所有数据包都可以自动保留到txt里面,方便过滤分析

  4. 使用相对简单,易上手。

最后说一声:原创不易,求给个赞实战|手把手教你如何使用抓包神器MitmProxy第18张、在看实战|手把手教你如何使用抓包神器MitmProxy第19张、评论实战|手把手教你如何使用抓包神器MitmProxy第20张

实战|手把手教你如何使用抓包神器MitmProxy第21张

推荐阅读

实战|手把手教你如何使用抓包神器MitmProxy第22张

实操案例!手把手教你画城市轮播地图(文末送书)

实战|教你爬取全国火锅店数量,并利用地图可视化展示

手把手教你爬取PC端『某酷视频』个人历史播放数据,并可视化展示

实战|手把手教你如何使用抓包神器MitmProxy第23张

实战|手把手教你如何使用抓包神器MitmProxy第24张

免责声明:文章转载自《实战|手把手教你如何使用抓包神器MitmProxy》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【abp vnext 实战系列】简单的内容管理系统:搭建框架AndroidManifest.xml配置文件详解 (转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python【第五篇】常用模块学习

1.模块 a.定义:本质就是.py结尾的python文件,逻辑上组织python代码,实现某种功能。例:文件名test.py-->模块名test。 b.导入方法:imort moduname                 from mdname import *                 from mdname import name as...

SAE J2534介绍

概要 J2534是一种针对与射频相关的ECU进行闪存编程的概念,而不用考虑ECU使用的通信协议。其目的是所有类型的ECU都应当只需一个工具(硬件设备),通常被称为通过式设备。J2534设备和ECU之间的连接是SAE J1962连接器。J2534硬件设备需要连接到一台装有来自车辆厂商的应用程序编程接口的标准电脑(图1)。电脑和J2534硬件设备之间的连接方式...

动态将ASPX生成HTML网页并将网页导出PDF

1.首先要找到wnvhtmlconvert.dll这个文件,并引入项目中。 2.Server.Execute("pos.aspx?id=" + ids); 执行相应的aspx网页 3.pos.aspx网页中有这样的一个方法,此方法用来生成html页面 protected override void Render(HtmlTextWriter writer)...

easy-wechat

https://www.easywechat.com/docs/master/installation -----其它的回复 创建菜单自定义菜单事件 地理位置回复素材发送一次性订阅消息 与 发送模板消息 -------- easy-wechat获取微信服务器 IP (或IP段) $ips = $app->base->getValidIps();...

使用Python进行PDF图片识别OCR

使用场景 使用图片识别可以快速提取图片中的信息,方便高效。 Python并不能直接对PDF进行识别,所以如果是识别PDF的话,需要先将PDF转化为图片,然后再进行识别。 必备工具 Python  可以安装3.7及以上版本 tesseract-ocr  下载地址: https://github.com/UB-Mannheim/tesseract/wiki 使...

npm 安装依赖包提示找不到python环境和Could not load the Visual C++ component “VCBuild.exe”

1 提示找不到python环境变量:             一般错误信息中会提示找不到python2,需要安装python2,并且配置python环境变量。然后设置npm常用的python版本,用以下命令npm config set python python2.7  或者 npm install --python=python2.7 2 如果安装完之后...