代码改变世界

mitmproxy 抓包神器

2021-05-06 12:48  Tanwheey  阅读(478)  评论(0编辑  收藏  举报

一、工具对比

 

HTTP

HTTPS

Rewrite

Map Local

GUI

开源

控制台

WEB

API

Charles

应用GUI

mitmproxy

webGUI

 

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

mitmproxy 说明文档:https://docs.mitmproxy.org/stable/

二、安装

1、工具安装

1、安装

% pip install mitmproxy或 brew install mitmproxy

% mitmproxy –version

 

 

 

出现以上信息表明安装成功。

2、证书安装

请先在抓包终端配置代理。

同charles,证书下载地址:http://mitm.it

 

 

 

三、支持模式

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

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

四、使用说明

1、mitmproxy

以命令行界面方式提供流量查看

启动命令

% mitmproxy -p 端口号

参数说明

  • -p:指定监听端口,设置代理的端口号

命令行界面

输入C,选择browser.start

 

 

 

% mitmproxy -p 443

#本地代理设置为443即可抓包。

 

 #确认安装证书后,抓包

 

 

 

 

 

注:界面同时命令行,如对包数据进行过滤:按f快捷键设置过滤条件view_filter这个Option.

 

 

 

 

知识点:~u mitmFilter expressions~u regex,用来过滤URL符合regex正则表达式的网络请求;可以按“?”跳转到Help界面查看全部的Filter expressions

 

 

 

 

2、mitmweb

以WEB页面的方式提供流量查看

启动命令

% mitmweb -p 端口号
#如不输入-p 端口号,即默认端口8080
模拟器设置代理:

 

 

 

参数说明

  • -p:指定监听端口

WEB界面

 

 

 #web抓包内容查看

 

 

 

 

3、mitmdump

类似于tcpdump的功能,让您可以查看、记录和以编程方式转换HTTP流量

启动命令:

% mitmdump -p 8888 -w package.txt

Proxy server listening at http://*:8888参数说明:

  • -p:指定监听端口
  • -w:输出流到文件

文件解析:

可通过mitmproxy提供的web端进行解析,选择mitmproxy->Open…

 

 

 

 

脚本交互模式

% mitmdump -s filter.py -p 8999

Loading script filter.py

Proxy server listening at http://*:8999

示例1:

解析接口(/getHomePageHttp/1.0)返回中的图片链接

 

 

 

示例2:

修改接口(/getHomePageHttp/1.0)服务端返回内容

 

 

 

示例3:

Mock接口(serch_keywords/1.0)返回内容

 

 

 

更多插件示例:

https://docs.mitmproxy.org/stable/addons-examples/#events-http-specific

五、应用场景

1、验证接口返回链接是否有效

2、项目切换域名,可对老域名进行监控

3、接口可靠性

4、与其他工具进行集成,实现抓包、Mock、Host配置等。如STF