抓包工具mitmproxy光速入门

一、什么是 mitmproxy

https://mitmproxy.org/ 中间人proxy 。一款优秀的Python写的中间人命令行工具,可以用它完成抓包。

二、快速入门

1.安装

Mac

brew install mitmproxy

三、常用场景– 查看请求与重写

  1. 启动 mitmproxy

命令行中输入 mitmweb 启动代理服务和web页面服务 代理服务器端口 默认 8080 web ui 端口默认 8081

打开浏览器 localhost:8081 即可查看 类似Charles的工作界面

  1. 代理设备

在电脑中查看本机IP,比如为 192.168.100.101

请把移动设备和电脑放在同一个局域网中,网络中选择代理-手动,指向 192.168.100.101:8080

  1. 安装证书

设备浏览器访问 http://mitm.it 根据页面指示下载对应的证书安装

4.过滤请求

在页面中,放大镜,是可以过滤请求 暂停符号,是用来阻塞一个请求 内部支持正则,和具体类型正则捕捉。

mitmproxy_tutor01

这里即暂停了一个请求。

我们对他可以进行编辑。

5.重点问题,Restful的OPTIONS请求

Charles的问题在于无法处理OPTIONS请求。 这里可以选中对应的 Request,点击Resume对 OPTIONS请求放行

每个请求,有两次暂停,第一次是 Request请求过程,这里时候可以编辑请求。第二次是Response响应过程,可以编辑返回。这里我们点击两次Resume跳过OPTIONS请求。

(OPTIONS是 Restful API 标准中用来沟通鉴权、跨域问题的接口,由浏览器自动发出,这里我们跳过他们)

mitmproxy_tutor01 mitmproxy_tutor02

我们重点在于编辑一个请求的返回。 在新的GET请求出现的时候,我们第一次跳过 点击Resume, 第二次,接口中会出现 Response的Tab,我们对Tab进行编辑。点击编辑按钮。 然后可以选择上传或者粘贴JSON数据。 然后编辑完继续点击 Resume允许请求继续进行。 这样就完成了一次数据Map代理。

四、其他功能

本质上是一个Python的工具库,所以可以任意拓展。这里只列举最简单功能。

五、替代品

Mark24

Everything can Mix.