mitmproxy抓取https请求实践

来源:互联网 发布:大数据创新中心 编辑:程序博客网 时间:2024/06/03 23:46

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的方式安装

pip install mitmproxy --ignore-installed six

3.2 使用homebrew的方式安装

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, 也可以按如下进行修改

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

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


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


5. 常用快捷键

  • 在列表界面,按用jk或者上下方向键在列表上浏览
  • 在列表界面,按回车进入详情界面
  • 在详情界面,按q,返回列表界面
  • 在详情界面,按tab键或者hl,在RequestResponseDetail三个tab之间切换。按jk或者上下方向键可以滚动查看详情
  • 在列表界面,按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

0 0
原创粉丝点击