mitmdump 抓包

本贴最后更新于 1812 天前,其中的信息可能已经东海扬尘

mitmproxy、mitmdump、mitmweb 比较

  • 启动 mitmdump,用 mitmproxy、mitmdump、mitmweb 这三个命令中的任意一个即可,这三个命令功能一致,且都可以加载自定义脚本,唯一的区别是交互界面的不同
  • mitmproxy 会提供一个在终端下的图形界面,具有修改请求和响应,流量重放等功能,具体操作方式有点 vim 的风格,mitmproxy 命令不支持在 windows 系统中运行
  • mitmdump 可设定规则保存或重放请求和响应,mitmdump 的特点是支持 inline 脚本,由于拥有可以修改 request 和 response 中每一个细节的能力,批量测试,劫持等都可以轻松实现
  • mitmweb 提供的一个简单 web 界面,简单实用,初学者或者对终端命令行不熟悉的可以用 mitmweb 界面
  • 此外还有一款 anyproxy,也具有类似功能

mitmdump

  • mitmdump 是 mitmproxy 的命令行版本。将 tcpdump 用于 HTT
  • 近似于 charles 的命令行版本
  • python:mitmproxy
  • 功能和 charles、fiddler 相似,强大之处在于它的工具 mitmdump 可以直接对接 python 对请求做处理
  • mitmdump 是 mitmproxy 的命令行窗口,同时还可对接 python 对请求进行处理,因此就不用手动截获和分析 http 请求和响应,只需要写好请求和响应的处理逻辑即可
  • 可用参数
    -p PORT --port PORT # 设置 mitmproxy 的代理端口
    
    -T --transparent # 设置透明代理
    
    --socks # 设置 SOCKS5 代理
    
    -s "script.py --bar" # 执行脚本,通过双引号来添加参数
    
    -t FILTER # 过滤参数

实例

  • 启动脚本 index.py, 监控端口 8888,
    mitmdump -s index.py -p 8888

mitmweb

会启动一个 web 界面,127.0.0.1:8081

  • 启动后,可以直接修改脚本函数内容,不需要重新启动
    mitmweb -s index.py -p 8888

mitmproxy 模块使用

安装

    pip install mitmproxy

脚本使用

  • addons,是个数组,每个元素是一个类实例,这些类有若干方法,这些方法实现了某些 mitmproxy 提供的事件,mitmproxy 会在某个事件发生时调用对应的方法。这些类,称为一个 addon
  • 容易管理和拓展
    addons = [
            Counter()  # Countrer是类实例,实现了mitmproxy的事件
        ]
  • 获取响应请求,传入参数为(flow)
    def request(flow):

    def response(flow):
  • 获得请求的 url,header,text
    flow.request.url
    flow.request.headers
    flow.response.text
  • 添加二级代理
    proxy = ("114.240.101.242", 5672)
    flow.live.change_upstream_proxy_server(proxy)
  • 脚本实例
    def request(flow):
        
        if flow.request.url.startswith("https://www.baidu.com"):
            requesturl = flow.request.url
            requestheaders = str(flow.request.headers)
            data = dict()

            url = "http://xxxx/url"
            data["url"] = requesturl
            data["debug"] = False
            data["headers"] = requestheaders
            
            # 通过redis传递请求
            sa(data)

证书

    mitmproxy-ca.pem, PEM格式的证书私钥
    mitmproxy-ca-cert.pem PEM格式证书,适用于大多数非Windows平台
    mitmproxy-ca-cert.p12 PKCS12格式的证书,适用于大多数Windows平台
    mitmproxy-ca-cert.cer 与 mitmproxy-ca-cert.pem, 相同(只是后缀名不同),适用于大部分Android平台
  • mitmproxy-dhparam.pem PEM 格式的秘钥文件,用于增强 SSL 安全性,证书安装到受信任的根目录中

使用步骤

  1. 安装 mitmdump 或 mitmproxy
  2. 启动,然后安装证书
  3. 监听 mitmdump -s index.py -p 8888
  4. 监听 8888 端口
  5. 设置代理或 VPN(drony),指向 mitmproxy,如果是本机,则指向 127.0.0.1:8888(Drony 中的 host 和 port)
  6. 浏览器代理
  7. 手机模拟器代理
  8. 手机 wifi 代理
  9. 修改脚本
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...