您的位置:首页 > 理论基础 > 计算机网络

mitmproxy抓取https请求实践

2018-01-22 00:00 316 查看
1. 背景

最近在准备iOS应用强制支持https的特性测试,需要梳理相应的请求,初步策略是选择通过抓包工具进行验证,查看相应的请求链接是否为https, 核对请求返回的状态码及返回数据是否正常。我们常用的抓包工具主要是fiddler和charles, 但是我这边使用charles抓取https遇到个坑,代理证书什么都安装了,SSL Proxy配置也正常,但是抓取的https请求就是返回失败,且数据乱码,如下图:





另外也有试用过anyproxy抓包工具,发现也是同样的情况,但是在同事电脑上是可以正常的,百度了许久,目前还没找到具体原因,有知道原因的,求告知。

2. mitmproxy介绍

官网:https://mitmproxy.org/

Github地址:https://github.com/mitmproxy/mitmproxy

3. mitmproxy安装

网络上提供了三种方式,进行安装

3.1 使用pip的方式安装

[html] view plain copy

pip install mitmproxy --ignore-installed six

3.2 使用homebrew的方式安装

[html] view plain copy

brew install mitmproxy

3.3 下载release文件,解压安装, 链接地址:https://github.com/mitmproxy/mitmproxy/releases/tag/v1.0.2

4. 抓取https实践

4.1 启动mitmproxy, 可以直接双击mitmproxy文件启动,也可以添加mitmproxy路径到PATH变量中,终端输入mitmproxy命令进行启动。

4.2 配置代理, 端口默认为8080, 也可以按如下进行修改

[html] view plain copy

mitmproxy -b 电脑ip -p 指定端口



4.3 Safari访问mitmproxy.it, 安装mitmproxy证书到手机上,并信任:



4.4 操作手机应用,查看相应的请求,这里以美团为例, 可以看到相应的https请求能够正常的抓取,如图:



5. 常用快捷键

在列表界面,按用j,k或者上下方向键在列表上浏览

在列表界面,按回车进入详情界面

在详情界面,按q,返回列表界面

在详情界面,按tab键或者h,l,在Request,Response,Detail三个tab之间切换。按j,k或者上下方向键可以滚动查看详情

在列表界面,按G跳到最新一个请求

在列表界面,按g跳到第一个请求

在列表界面,按d删除当前选中的请求,按D恢复刚才删除的请求

在列表界面,按z清空请求列表

6. 拦截与修改请求

6.1 请求列表界面,按i进入Intercept Filter模式, 输入相应的关键字,即可拦截相应的请求;按esc可以退出intercept filter模式:



6.2 点击相应的请求,进入详情界面,切换到Request tab, 按e进入编辑request请求,e.g. 修改请求参数:



6.3 修改完请求参数后,按a, 执行请求,查看response,发现请求修改成功:



参考资料:

1. https://mitmproxy.org/doc/mitmproxy.html
2. http://www.tuicool.com/articles/EVV3Qza
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: