Mitmproxy使用教程for mac
作为开发者,测试方都需要经常对HTTP请求做分析,现在burpsuit,fiddler也为主流.可是一些场合并不需要如此全面的工具去支撑,快捷便于拓展可能又成为人们的另一个追求点.
0x01 介绍
An interactive console program that allows traffic flows to be intercepted, inspected, modified and replayed.
简单说该工具正如其名MITM(man-in-the-middle)再加个proxy –中间人代理软件,可以用来拦截,修改,保存HTTP/HTTPS请求。当然主要以命令行形式呈现,虽然现在已经有mitmweb辅助出现,不过官网称其暂时为beta阶段,一部分功能暂未完善。
0x02 安装
大部分了解一些mitmproxy的伙伴都知道目前这是一个基于python3的程序,目前大部分程序都在向python3转移,可是暂时多数操作系统都是以python2做支撑,作为一个懒人当然是专门有找到了mitmproxy的py2版本号。不过还是建议大家还是去熟悉下py3(不要向我一样懒)
这里的操作系统为macOS
不说废话首先我们先掏出 pip
1 |
pip install mitmproxy==0.18.2 |
这是python2的小伙伴使用的命令(mitmproxy==0.18.2)
py3可直接install mitmproxy
之后终端输入mitmproxy则可正常使用
0x03 简单配置
安装之后的操作
1.启动mitmproxy
默认
1 |
mitmproxy |
或指定代理端口
1 |
mitmproxy -p 8888 |
注:默认(即不指定端口)即为指定默认端口8080
(不绕口吧2333)
2.设置浏览器代理
浏览器偏好设置-高级-代理
http和https都选中 内容如图 应用之后,随手就是打开一个网页,回终端看,大概就是这样。
当然没完,先别着急关
3.安装证书
为了保证https能成功抓取,我们需要先安装证书
打开网页 http://mitm.it 你是哪个选哪个..下载,打开
找见你的钥匙串访问-mitmproxy-信任–始终信任 (手机端类似)
ok
0x04 基本操作
mitmproxy可以说是一个控制台,允许交互式检查和修改 HTTP 流量。
? 快捷键用于查看帮助信息
q 用于返回/退出
c 清空列表
接下来我们开始捕获流量,并介绍相关界面
Flow list
流量请求按顺序依次显示 可直接通过上下键来选中目标 >>
- 1:GET请求,返回302重定向响应
- 2:GET请求,返回大小为16.75kb的text/html 数据
- 3:一个重放的请求
- 4:橙色的文字表示拦截的流量,使用者可以编辑并接收它,(使用 a )继续
- 5:从服务器到客户端中截获的响应
- 6:事件日志可以通过 e 来切换和关闭
- 7:流量统计
- 8:mitmproxy的状态的各种信息,这里我们设置了拦截内容为符合.*的模式
- 9:显示正在监听的端口号
Flow view
鼠标单击或enter键打开目标view 可以通过此来检查,操作单个请求
- 1:此数据包基本信息摘要
- 2:通过选择Request/Response两个标签来转换查看部分,可通过鼠标单击或使用 tab 快捷键
- 3:Headers
- 4:Body
- 5:View Mode indicator 当前为hex浏览模式,可使用快捷键 m 来根据提示切换模式
Grid Editor
数据请求的编辑器,用表格对应列表的形式便于编辑操作 e 进行数据编辑根据下方提示选择编辑内容并enter保存或esc看提示 q返回上一级
r 回放编辑好的请求
/ 搜索请求中需要的内容
拦截请求案例
i 设置拦截请求模式
~q 设置筛选模式为拦截所有的请求
更多筛选模式可通过在其页面下快捷键?调出帮助查看 常用:
1 2 3 4 |
~q 拦截所有的请求 ~c 404 拦截特定的响应码404 ~m POST 拦截所有POST请求 id=1 拦截url中存在id=1的请求 |
橙色表示被拦截的请求
e 修改,方式同上一条内容
a 接受修改或未修改并将请求发出
退出拦截模式时转到请求列表,快捷键i并删去筛选模式内容即可
这和fiddler4功能差不多吧
嗯fiddler更厉害了 不过没有mac版的fiddler
这个一般用来开发被动式扫描器 -0 –
嗯 所以最近在看这个,表哥给点学习资源?