文档章节

mitmproxy抓取https请求实践

搬砖小哥
 搬砖小哥
发布于 2018/01/22 19:24
字数 730
阅读 293
收藏 0

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

  1. pip install mitmproxy --ignore-installed six  

 

3.2 使用homebrew的方式安装

 

[html] view plain copy

  1. 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

  1. 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

 

© 著作权归作者所有

搬砖小哥
粉丝 1
博文 40
码字总数 55481
作品 0
深圳
QA/测试工程师
私信 提问
使用 Mitmdump 与 Python 脚本进行密码嗅探

很久没有写文章了,一是没空,二是几乎忘了还有这回事。这篇应该是年前的最后一发吧!那么今天就来聊一聊我最近关于网络抓包的一些实践(其实我对网络安全领域知之甚少)。当然,大家最熟知的...

摆码王子
2019/02/03
0
0
用golang写一个http代理,可以抓包和科学上网

用golang写一个http代理,可以抓包和科学上网 缘起 因为在工作中需要对上网进行限制,只让我们的app上网,意思就是放行app请求的所有域名或ip,而其他域名都禁止,所以我需要对app的http请求...

sheepbao
2016/06/15
1.7K
6
如何突破网站对selenium的屏蔽

本文原创作者:鲲之鹏(http://www.site-digger.com) 本文原始链接:http://www.site-digger.com/html/articles/20180821/653.html 使用selenium模拟浏览器进行数据抓取无疑是当下最通用的数...

xiankunzhipeng
2018/08/22
0
0
node-mitmproxy是一个基于nodejs,支持http/https的中间人(MITM)代理,便于渗透测试和开发调试。

node-mitmproxy 源码地址:https://github.com/wuchangming/node-mitmproxy node-mitmproxy是一个基于nodejs,支持http/https的中间人(MITM)代理,便于渗透测试和开发调试。 1、特性 1、支持...

wuchangming
2016/05/18
523
0
中间人攻击(爬虫工具) mitmproxy 使用指南

mitmproxy 是 man-in-the-middle proxy 的简称,译为中间人代理工具,可以用来拦截、修改、保存 HTTP/HTTPS 请求。以命令行终端形式呈现,操作上类似于Vim,同时提供了 mitmweb 插件,是类似...

刘志军
2018/10/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

检查字符串是否不为空且不为空

如何检查字符串是否不为null也不为空? public void doStuff(String str){ if (str != null && str != "**here I want to check the 'str' is empty or not**") { /* handl......

javail
7分钟前
7
0
No module named 'apscheduler.schedulers'

关于 ModuleNotFoundError: No module named 'apscheduler.schedulers' 和 ModuleNotFoundError: No module named 'apscheduler' 的问题,网上有不少解决。大多数都是因为,文件起名与模块名......

開援带碼
28分钟前
27
0
如何查看Android的系统版本?

有谁知道我怎么能检查系统版本(例如1.0 , 2.2 ,等)编程? #1楼 我无法对答案发表评论,但是Kaushik的答案存在一个严重错误:SDK_INT与系统版本不同,但实际上是指API级别。 if(Build.VER...

技术盛宴
53分钟前
35
0
引入AI变量,精准农业正在加速豹变?

  不久前,“江苏省脱贫率达 99.99%,尚未脱贫人数仅剩 6 户、17 人”这样一则新闻刷屏。“把这 17 个人迁出,江苏就全省脱贫”、“最后这 6 户人家拖了后腿”,在网民们的调侃和质疑声背后...

水果黄瓜
57分钟前
41
0
Elasticsearch系列---结构化搜索

概要 结构化搜索针对日期、时间、数字等结构化数据的搜索,它们有自己的格式,我们可以对它们进行范围,比较大小等逻辑操作,这些逻辑操作得到的结果非黑即白,要么符合条件在结果集里,要么...

清茶豆奶
今天
69
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部