mitmproxy 拦截代理

mitmproxy 是什么?

mitmproxy 是用于 MITM 的 proxy,MITM 即中间人攻击(Man-in-the-middle attack)。用于中间人攻击的代理首先会向正常的代理一样转发请求,保障服务端与客户端的通信,其次,会适时的查、记录其截获的数据,或篡改数据,引发服务端或客户端特定的行为。

为什么要用mitmproxy?相比Fiddler 和 Charles它有什么优势?

不同于 fiddler 或 wireshark 等抓包工具,mitmproxy 不仅可以截获请求帮助开发者查看、分析,更可以通过自定义脚本进行二次开发。

举例来说,利用 fiddler 可以过滤出浏览器对某个特定 url 的请求,并查看、分析其数据,但实现不了高度定制化的需求,类似于:“截获对浏览器对该 url 的请求,将返回内容置空,并将真实的返回内容存到某个数据库,出现异常时发出邮件通知”。

而对于 mitmproxy,这样的需求可以通过载入自定义 python 脚本轻松实现。

特征

  • 拦截HTTP和HTTPS请求和响应并即时修改它们

  • 保存完整的HTTP对话以供以后重播和分析

  • 重播HTTP对话的客户端

  • 重播先前记录的服务器的HTTP响应

  • 反向代理模式将流量转发到指定的服务器

  • macOS和Linux上的透明代理模式

  • 使用Python对HTTP流量进行脚本化更改

  • 实时生成用于拦截的SSL / TLS证书

安装

在 windows 中,以管理员身份运行 cmd 或 power shell:pip install mitmproxy

检查安装是否成功:mitmdump --version

 运行

要启动 mitmproxy 用 mitmproxymitmdumpmitmweb 这三个命令中的任意一个即可,这三个命令功能一致,且都可以加载自定义脚本,唯一的区别是交互界面的不同。

命令行输入:mitmdump

默认就会监听8080端口;相当于加了一个代理层8080;如果此时请求是抓取不到包的,因为不经过代理层。

windows 配置代理

 1、电脑配置代理:8080 端口

2、浏览器设置代理:

 浏览器再次访问会提示报错:

安装证书

解决办法:Windows用户界面的 .mitmproxy中,点击进去,可以看到有多个证书,

Windows端需安装:mitmproxy-ca-cert.p12

1、找到当前用户.mitmproxy 文件夹中的这个文件,点击直接安装

2、存储到对应的目录

 

 3、浏览器导入证书

 

 4、再次访问百度,可以看到抓取到请求了

Android 配置代理

Android 安装证书

配置好wifi连接之后,访问 mitm.it

 

原文地址:https://www.cnblogs.com/keenajiao/p/15773611.html