zoukankan      html  css  js  c++  java
  • mitmproxy 学习笔记(一)之安装

     一、背景

           mitmproxy 可以当作抓包工具也可以当作是代理,其具体能力如下:

    (1) 支持SSL/TLS的HTTP/1、HTTP/2、WebSockets 请求拦截 ;

    (2) 对拦截的 HTTP 请求支持修改(使用python脚本接入 mitmproxy API);

    (3) 保存 HTTP 对话以供以后重播和分析;

    (4)  重播  HTTP 客户端和服务器

    二、知识

          官网(https://www.mitmproxy.org)提供的包,包含3个工具:

    1、mitmproxy

        提供一个交互式的界面,可以看到拦截的请求等,在交互式界面中可以输入各种 command 进行操作;

    2、mitmweb

         提供一个 web 的界面,可以看到拦截的请求等,在界面上可以对拦截的请求进行数据分析;

    3、mitmdump

         提供一个命令行的界面进行操作,类似于 tcpdump for HTTP;

    三、安装

    1、下载  (https://mitmproxy.org/)

     这里点击 "More Downloads",可以看到更多版本,本次案例中 下载 mitmproxy-5.3.0-linux.tar.gz。

    2、安装

     mitmproxy-5.3.0-linux.tar.gz 压缩包中的目录结构:

     可以看到其中含有 3 个工具文件。

    mkdir mitmproxy

    tar -zxvf mitmproxy-5.3.0-linux.tar.gz -C mitmproxy

    # mitmproxy 获取

    version_info=`${curr_dir}/../tool/mitmproxy/mitmproxy --version |grep Mitmproxy`
    if [ ! -n "$version_info" ] # install fail maybe lack of some library
    then
    echo -e "`date +%F %T` ERROR: install mitmproxy fail" 
    exit 1
    else
    echo -e "`date +%F %T` INFO: install mitmproxy successfully" 
    fi

    其中 : mitmproxy --version |grep Mitmproxy  是为了校验 mitmproxy 在服务器环境中能否正确执行。

    正确执行结果:

     由于 mitmproxy 使用 python 开发,其不支持跨平台,环境中必须安装支持 python 成功运行的相关软件,所以通过该命令,可以校验环境是否OK。

    若环境不 OK,执行该命令的时候会报错,具体可以看 第四章节的 (1) 小点。

    3、效果

    (1) mitmproxy

    ./mitmproxy  -p 8040

    说明: -p  可以指定 mitmproxy 运行端口,默认是 8001

    开启另一个控制台界面,输入:curl --proxy x.x.x.x:8040 http://x.x.x.x:8068/v1/catalog/services   (其中 x.x.x.x  为 安装 mitmproxy 软件的服务器)

     从上图中可以看到 mitmproxy 已经拦截到了请求

    (2) mitmdump

    启动命令:

    ./mitmdump -p 8040

    开启另一个控制台界面,输入:curl --proxy x.x.x.x:8040 http://x.x.x.x:8068/v1/catalog/services   (其中 x.x.x.x  为 安装 mitmproxy 软件的服务器)

     上图说明 mitmdump 拦截到了请求

    (3) mitmweb

    启动命令

    ./mitmweb -p 8040

     开启另一个控制台界面,输入:curl --proxy x.x.x.x:8040 http://x.x.x.x:8068/v1/catalog/services   (其中 x.x.x.x  为 安装 mitmproxy 软件的服务器)

     从上图可以看出:

    http://127.0.0.1:8001  是 web 访问的地址。目前遇到的问题,由于安装 mitmproxy 的 服务器是 无界面的 linux 虚拟机,因此在windows 服务上直接使用 http://x.x.x.x:8081 访问未成功,但是在 虚拟机上通过图中的IP是可以访问成功的。

     四、遇到的问题

    (1) 环境中没有 GLIBC_2.18

     解决办法:

    安装 GLIBC_2.18

    a) 下载

        http://mirror.hust.edu.cn/gnu/glibc/   

    b) 安装

     

    #解压压缩包

    tar -zxvf glibc-2.18.tar.gz

    #切换到 glibc目录

    cd glibc-2.18

    #创建 build 目录,用于存储编译后的文件,这里判断若存在 build 目录,则 先删后新建
    build_dir=$(pwd)/build
    if [ -d "$build_dir" ]
    then
    rm -rf $build_dir
    fi
    echo "start to buid glibc-2.18,please wait..."
    mkdir build && cd build/

    #编译
    ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin >> ${gclib_log_file} 2>&1
    echo "start to make glibc-2.18,please wait..."
    make >> ${gclib_log_file} 2>&1
    echo "start to install glibc-2.18,please wait..."

    # 安装
    make install >> ${gclib_log_file} 2>&1

    # 检查 glibc 是否安装成功
    installed_glibc=`strings /lib64/libc.so.6|grep GLIBC_2.18`
    if [ ! -n "$installed_glibc" ]
    then
    echo -e "`date +%F %T` ERROR: install glibc_2.18 fail" > ${gclib_log_file} 2>&1
    exit 1
    else
    echo -e "`date +%F %T` INFO: install glibc_2.18 successfully" > ${gclib_log_file} 2>&1
    fi

     c) 查看系统中 gclib 的安装情况

    第一种方式:

    ll /lib64/ |grep libc

    结果如下:

    第二种方式:

    strings /lib64/libc.so.6 |grep GLIBC_

     上图展示了已安装的 GCLIB 各种版本

  • 相关阅读:
    CSS3—— 2D转换 3D转换 过渡 动画
    CSS3——边框 圆角 背景 渐变 文本效果
    CSS3——表单 计数器 网页布局 应用实例
    CSS3——提示工具 图片廓 图像透明 图像拼接技术 媒体类型 属性选择器
    CSS3——对齐 组合选择符 伪类 伪元素 导航栏 下拉菜单
    CSS3——分组和嵌套 尺寸 display显示 position定位 overflow float浮动
    CSS3——盒子模型 border(边框) 轮廓(outline)属性 margin外边距 padding填充
    Eclipse连接数据库报错Local variable passwd defined in an enclosing scope must be final or effectively final
    数据库——单表查询
    数据库——添加,修改,删除
  • 原文地址:https://www.cnblogs.com/sandyflower/p/14038463.html
Copyright © 2011-2022 走看看