安装 mitmproxy
Ubuntu需要先安装cryptography的依赖开发环境
sudo apt-get install build-essential libssl-dev libffi-dev
通过pip安装 mitmproxy
pip install mitmproxy
未安装cryptography依赖开发环境时,可能抛出错误信息:
failed with error code 1 in /tmp/pip-build-dlon5cys/cryptography/
安装完成后,要监听HTTPS链接,需要先安装受信证书
移动端安装证书,可通过在移动设备访问该网址获得:http://mitm.it/
关于使用
官方使用指南:http://docs.mitmproxy.org/en/latest/mitmproxy.html
关于过滤器,有两种触发模式:
f 键触发,仅显示符合指定过滤模式的请求/响应
i 键触发,拦截每个符合指定过滤模式的请求/响应,以橙色高亮显示
针对iPhone的App,其使用HTTPS协议进行服务访问时可能无法通过mitmproxy过滤出来,表现为App网络链接异常,其中一种原因解释如下:
iOS预防上述的中间人攻击也很简单,在客户端App做ssl pinning就可以了。
ssl pining分为certificate pinning和public key pinning两种,目前主流的第三方HTTP framework(AFNetworking和Alamofire)都支持ssl pinning功能。
做了证书或者公钥绑定之后,Charles和mitmproxy的https流量都无法正常获取了。