zoukankan      html  css  js  c++  java
  • mitmproxy 抓包神器

    一、工具对比

     

    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

  • 相关阅读:
    [Android Pro] Android源码编译之Nexus5真机编译
    [设计模式] 策略模式(Strategy)
    [Android] Anreoid repo 切换分支
    [Android] repo 下载Android源码(国内镜像)
    [Android] osx下如何使用SublimeText阅读Android系统源码
    [Ubuntu] ubuntu的tty下挂载移动硬盘拷贝数据
    Elasticsearch
    Flink简介
    SQL中instr和like的使用区别
    count(1) 与 count(*) 比较
  • 原文地址:https://www.cnblogs.com/Tanwheey/p/14734658.html
Copyright © 2011-2022 走看看