官网介绍
mitmproxy is a free and open source interactive HTTPS proxy.
mitmproxy 是用 Python 和 C 开发的一个中间人代理软件(man-in-the-middle proxy),它可以用来拦截、修改、重放和保存 HTTP/HTTPS 请求。
mitmproxy需要在python3的环境下运行,mac一般都自带python2.7,需要安装python3,两者可兼容。
然后安装mitmproxy,如果安装有brewhome, 可以使用 brew install mitmproxy,也可以使用pip3 install mitmproxy进行安装,还可以下载mitmproxy的安装包进行安装。
安装完成后需要在电脑和手机上边安装证书,电脑上边在浏览器设置里边高级部分里找到代理部分,点击打开之后选择网页代理和安全网页代理部分,进行设置。设置安全网页代理服务器为:127.0.0.1:8080,然后确定之后应用。
安装
可以使用brew包管理工具进行安装
brew install mitmproxy
也可以通过pip进行安装,我是通过这种方式把它安装在虚拟环境里的
pip install mitmproxy
MAC配置代理转发
1、点击网络偏好设置
2、点击 高级
3、设置下图所示,代理地址为127.0.0.1,端口为8080。8080为默认端口。
安装证书
设置好代理后,执行命令,开启mitmproxy
mitmproxy -p 8080
此时还不能正常抓包,我们在电脑上安装证书
1、打开该网站:http://mitm.it/#macOS
2、下载 信任
将上图中的.pem下载到本地后,我们双击打开钥匙串页面,然后找到我们的mitmproxy,点击打开详情页面,在信任栏下面选择:使用此证书事始终信任。
在这个过程中会要求输入AppleID。正常输入即可
手机设置代理抓包
手机部分代开设置,无线和网络,WLAN,将手机和电脑连接到同一个网络上边,然后设置成代理模式。华为荣耀10的设置方式是:长按连接的网络,点击修改网络,显示高级选项,代理设置为手动,ip为电脑ip,端口设置为8080.此时手机代理模式设置成功。
打开浏览器,输入网址mitm.it,打开之后下载对应的手机证书,如果不能下载可以使用别的方式将证书发送到手机,进行安装。安装证书的方式为:华为荣耀10:打开WLAN,点击右下角更多按钮,高级WLAN设置,安装证书,找到证书文件进行安装,安装过程中需要输入手机密码,证书名字mitmproxy;完成之后显示安装成功。之后就可以对客户端进行抓包了。
脚本
加载方法
-p 指定端口
-s 指定脚本
mitmdump -p 8080 -s outproject/tmail/file2.py
最佳实践
案例一:过滤图片请求,将大图片url保存进redis
import redis rds_pool = redis.ConnectionPool(host="127.0.0.1", port=6379, db=2) rds = redis.StrictRedis(connection_pool=rds_pool) # response函数会自动执行,过滤数据流 def response(flow): url = flow.request.url try: length = flow.response.headers['content-length'] length = int(length) except Exception as e: # print(e) # print(flow.response.headers) length = 0 if '.jpg' in url and length > 200000: rds.hset('tm', str(length), url)
转载请注明:拈花古佛 » Mac抓包工具 Mac中Mitmproxy安装与使用