美文网首页
mitmproy代理

mitmproy代理

作者: 是立品啊 | 来源:发表于2020-08-14 21:58 被阅读0次

    简介

    mitmproxy 基于Python开发的 是一个免费开源的交互式HTTPS代理。

    安装

    pip install mitmproxy
    

    三种启动命令

    三种命令对应不同的三种模式

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

    mitmdump

    mitmdump是mitmproxy所提供的命令之一。它提供类似于tcpdump的功能,让您可以查看、记录和以编程方式转换HTTP流量。

    1. 启动监听

     ~ mitmdump -w ~/log.txt
    Proxy server listening at http://*:8080
    

    该命令会占用本地8080端口,将监听的数据写入到 ~/log.txt 文件中

    2 . 浏览器设置代理

    浏览器监听端口号要与 mitmproxy 监听的端口8080 保持一致。

    2 .1 打开网页不支持https的解决办法
    image-20200814212954603
    2.2、用命令行启动一个临时的浏览器,指定代理,并忽略掉证书错误
    # mac
    open -a /Applications/Google\ Chrome.app --args --proxy-server=127.0.0.1:8080 --ignore-certificate-errors
    # windows
    "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --proxy-server=127.0.0.1:8080 --ignore-certificate-errors
    

    3. 抓取请求

    • 浏览器发送请求,shell中抓取了请求,并同时写入了文件 log.txt
    image-20200814213346429

    mitmweb

    mitmweb启动默认浏览器,并打开一个web版的抓包工具,为了直观的看到请求和响应的数据,我们使用 mitmweb 命令运行脚本

    1. 自定义脚本修改请求

    # vim http_add_header.py
    """Add an HTTP header to each response."""
    
    
    class AddHeader:
        def __init__(self):
            self.num = 0
    
        def response(self, flow):
            self.num = self.num + 1
            flow.response.headers["count"] = str(self.num)
    
    addons = [
        AddHeader()
    ]
    

    2. 启动代理

    ~  mitmweb -s ./http_add_header.py
    Web server listening at http://127.0.0.1:8081/
    Loading script ./http_add_header.py
    Proxy server listening at http://*:8080
    

    3. 浏览器访问请求

    image-20200814215402432
    • 请求头默认加上了我们脚本中设置的参数 count

    参考

    更多参考官网例子:https://docs.mitmproxy.org/stable/addons-examples/

    相关文章

      网友评论

          本文标题:mitmproy代理

          本文链接:https://www.haomeiwen.com/subject/zbgndktx.html