前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mitmproxy 抓包神器-1.环境准备与抓取浏览器请求

mitmproxy 抓包神器-1.环境准备与抓取浏览器请求

作者头像
上海-悠悠
发布2023-01-03 14:26:01
9880
发布2023-01-03 14:26:01
举报

前言

常见的抓包工具有fiddler 和 charles, 这些工具都是需要安装本地客户端,python 版的抓包工具可以用 mitmproxy。 mitmproxy 相比Charles、fiddler的优点在于,它可以命令行方式或脚本的方式进行mock

简介

mitmproxy(man-in-the-middle attack proxy),中间人攻击工具,可以用来拦截、修改、保存 HTTP/HTTPS 请求 官方文档地址https://docs.mitmproxy.org/stable/ mitmproxy 工具有以下三个组件构成

  • mitmproxy 是具有 SSL/TLS 功能的交互式拦截侦听代理,具有用于HTTP/1,HTTP/2和WebSockets的控制台界面。
  • mitmweb 是用于 mitmproxy 的基于 Web 的界面, 提供一个可视化界面帮助我们查看抓取的请求,可以修改返回内容。
  • mitmdump 它是mitmproxy的命令行接口,利用它我们可以对接Python脚本,用Python实现监听后的处理。

安装

Windows安装

代码语言:javascript
复制
pip install mitmproxy

Mac安装

代码语言:javascript
复制
brew install mitmproxy

或者跟windows 一样用pip安装

代码语言:javascript
复制
pip install mitmproxy

python 版本我用的 3.9.13 , 版本太低可能会出现不兼容问题。

安装完成后检查版本

代码语言:javascript
复制
mitmproxy --version

python 3.9 版本会安装 Mitmproxy: 9.x 版本

代码语言:javascript
复制
(venv) D:\demo\mitmproxy_xuexi>mitmproxy --version
Mitmproxy: 9.0.1
Python:    3.9.13
OpenSSL:   OpenSSL 3.0.7 1 Nov 2022
Platform:  Windows-10-10.0.17134-SP0

安装完成后会得到3个命令行工具:mitmproxy/ mitmweb/ mitmdump

除了用命令行安装,还可以用安装包安装,或者可以下载release文件 下载链接地址https://mitmproxy.org/downloads/#9.0.1/

mitmweb 基于 Web 的界面

先看第一个基于 Web 的界面命令行工具 mitmweb 的使用, 命令行启动服务

代码语言:javascript
复制
mitmweb

执行命令行后会看到启动成功

代码语言:javascript
复制
(venv) D:\demo\mitmproxy_xuexi>mitmweb
[11:59:49.361] HTTP(S) proxy listening at *:8080.
[11:59:49.363] Web server listening at http://127.0.0.1:8081/

mitmproxy 默认监听的端口是 8080 端口(fiddler 默认监听的是8888),可以加 -p 参数指定监听端口

代码语言:javascript
复制
(venv) D:\demo\mitmproxy_xuexi>mitmweb -p 8099
[12:02:44.095] HTTP(S) proxy listening at *:8099.
[12:02:44.097] Web server listening at http://127.0.0.1:8081/

浏览器默认端口的地址是http://127.0.0.1:8081/,显示如下

抓浏览器请求

mitmproxy 默认监听的端口是 8080 端口, 所以需要在浏览器上设置代理

开启代理,设置监听8080端口,点保存按钮

Mac 电脑端的配置

接下来浏览器访问一个http的请求,就可以捕获到了

打开百度https://www.baidu.com 页面是 https 请求,默认不会抓取

抓取https 请求

当打开一个https 请求时,页面上出现”您的连接不是私密连接”

mitmproxy 默认只抓取http的请求,https 的请求需要安装证书。

或者直接访问地址http://mitm.it/, 出现如下页面说明访问成功

如果出现的是下面这个页面, 说明服务没启动,或者没设置代理。

根据自己的电脑系统下载对应的证书,我的是windows系统,下载的文件是mitmproxy-ca-cert.p12

接下来,点对应系统证书文件右侧按钮,显示安装说明

windows 系统安装说明:

  • 1.双击下载的文件,开始导入证书
  • 2.选择一个证书文件存储位置(本地计算机),然后下一步
  • 3.输入密码界面,直接留空白,下一步
  • 4.选择“将所有证书放置在以下存储”,然后单击“浏览”,然后选择“受信任的根证书颁发机构”。下一步
  • 5.点完成
  • 6.导入成功点确定

以上证书安装完成后,重新访问百度页面就可以抓包成功了

那就意味着浏览器上的所有https 请求都可以抓到了。

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

本文分享自 从零开始学自动化测试 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 简介
  • 安装
  • mitmweb 基于 Web 的界面
  • 抓浏览器请求
  • 抓取https 请求
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档