motmproxy 是一个支持 HTTP/HTTPS 协议的抓包程序, 和 Fiddler, Charles 有些类似的功能,只不过它以控制台的形式操作
mitmproxy 还有两个关联组件。 一个是 mitmdump , 这是 mitmproxy 的命令接口, 利用它我们可以对接 Python 脚本, 用 Python 实现监听后的处理,另一个是 mitmweb ,这时一个 web 程序,通过它我们可以清楚的观察到 mitmproxy 捕获的请求
mitmproxy 的功能
mitmproxy 有如下几个功能
拦截 HTTP/HTTPS 的请求和响应
保存并分析 HTTP 会话
模拟客户端发起请求,模拟服务器端返回响应
理由反向代理将流量转发给指定的服务器
支持 Mac 和 linux 系统的透明代理
利用 Python 实时处理 HTTP 请求和响应
准备工作
mitmproxy 运行之后会默认在当前电脑的 8080 端开启一个代理服务,这个服务实际上是一个 HTTP/HTTPS 的代理
正确安装 mitmproxy, 并且让手机和 mitmproxy 处与同一局域网络换(同一WIFI)
然后配置好 mitmproxy CA
我的配置方案:写文章-CSDN创作中心
基本使用
配置好之后再 cmd 输入 mitmproxy
在手机随便打开一个浏览器之类的,需要联网的 APP 这里以百度为例 www.baidu.com
左下角的 1/4 代表产生了 4 个请求, 箭头指的是第 1 个请求。 每个请求开头都有一个 GET 或 POST ,这是请求方法,后面紧跟的是请求 URL , URL之后是响应状态码, 其后是响应内容的类型 如 text/html 代表网页文档, image/jpeg 代表图片, 再后面是响应体大小和响应时间
如果想查看某个请求的详情, 可以通过上下键切换,选中这个请求后按下回车,进入请求详情页
可以看到请求头的详细信息,例如 Hos, Cookie等,图的上方有 Request ,Response 和 detail 三个选项, 当前打开了 Request 选项,按下 Tab 键 切换至 Response 选项卡,查看对应请求的响应详情
开始的内容是响应头的信息,下拉之后可以看到响应体的信息。针对当前请求,响应体就是网页的源代码。此时再按下 Tab 键切换到最后一个选项卡 Detail ,即可看到当前请求的详细信息,如服务器的 IP 和端口, HTTP 协议版本,客户端的 IP 和端口等
mitmproxy 还提供了命令行式的编辑功能,使我们可以重新编辑请求。 按下 E 键即可进入编辑页面,这时它会询问编辑哪部分内容,选项有 Cookies ,query , url 等
按下要编辑内容对应的索引键即可进入编辑页面,例如按下数字 6 键,进入编辑请求 URL 的参数 Query String 的页面,我们可以按下 D 键删除当前的 Query Srings ,然后 按下 A 键新增一行,输入 key 和 value, 这里我们可以输入 wd=NBA ,可以使用 Tab 键切换 key value ,之后按下 Esc 和 Q 键返回详情页面,可以看到请求 URL 里多了 wd = NBA 的参数
接着按下 E 键和数字 4 键, 进入编辑 Path 的页面
按下 D 和 A 修改 Path 内容,这里我们将 path 修改为 s , 之后按下 Esc 和 Q 键返回请求详情页面
响应结果 response
只是基本用法,作为基础了解