在windows机器上,经常用的最多的是fiddler工具,很强大,图形化界面,使用方便、简单;在mac上,Charles 类似fiddler工具,同样是易于操作的图形化界面,同样都是通过代理的方式实现抓包功能,可通过工具分析http(s)包、修改resquest、response内容,满足日常需求 而笔者不想每次打开fiddler、手动去修改request或者response,希望通过脚本定制化实现篡改。首选mitmproxy , mitmproxy顾名思义中间人代理【man-in-the-middle proxy】,和fiddler、Charles等工具类似,通过代理方式实现对http(s)的拦截
环境 1.Python3.6及以上 (python -V查看版本) 2.更新pip(避免部分依赖包未下载) 3.安装mitmproxy pip install mitmproxy #安装依赖包的同时也将环境安装
介绍 引用原文: The mitmproxy project’s tools are a set of front-ends that expose common underlying functionality. mitmproxy is an interactive man-in-the-middle proxy for HTTP and HTTPS with a console interface. mitmdump is the command-line version of mitmproxy. Think tcpdump for HTTP. mitmweb is a web-based interface for mitmproxy. 也就是说: mitmproxy工程工具包,主要包含了3个组件 mitmproxy:拦截的http(s)记录控制台显示 【window不支持】 mitmdump:命令行接口,可以对接python脚本,通过脚本实现监听后的处理,可定制个人需求 mitmweb:web形式展示
特性 - Intercept HTTP & HTTPS requests and responses and modify them on the fly - Save complete HTTP conversations for later replay and analysis - Replay the client-side of an HTTP conversations - Replay HTTP responses of a previously recorded server - Reverse proxy mode to forward traffic to a specified server - Transparent proxy mode on OSX and Linux - Make scripted changes to HTTP traffic using Python - SSL/TLS certificates for interception are generated on the fly - And much, much more…
使用 配置代理 - 手机和电脑同处一个局域网,配置手机代理设置,与其他代理工具的配置方式一致 - 访问mitm.it 网址,直接下载、安装、信任CA证书(https协议需要)
使用mitmproxy【window不可用,linux、mac可使用,笔者使用linux系统】 - 启动mitmproxy,默认8080,可指定端口 mitmproxy -p 8888
- 控制台快捷命令说明
按键 说明 q 退出(相当于返回键,可一级一级返回) d 删除当前(黄色双箭头)指向的链接 D 恢复刚才删除的请求 G 跳到最新一个请求 g 跳到第一个请求 C 清空控制台(C是大写) i 可输入需要拦截的文件或者域名(起到过滤作用) a 放行请求 A 放行所有请求 ? 查看界面帮助信息 ^ v 上下箭头移动光标 enter 查看光标所在列的内容 tab 分别查看 Request 和 Response 的详细信息 / 搜索body里的内容 esc 退出编辑 e 进入编辑模式 结语 这里仅仅介绍了环境搭建及mitmproxy的使用,其实很类似fiddler,甚至没有fiddler直观,不过用习惯了命令也是操作比较简单的,但是我的目的不在于此,我的目的是通过脚本的方式定制化篡改http(s)的request或者response,下一章继续mitmdump 【官网】https://docs.mitmproxy.org/stable/tools-mitmproxy/
作者:小蜗牛的成长 链接:https://www.jianshu.com/p/749a6b766884 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
转载于:https://www.cnblogs.com/c-x-a/p/9753514.html
相关资源:JAVA上百实例源码以及开源项目