• Https抓包


    安装

    mitmproxy 官网 介绍了用以下命令来安装

    pip install mitmproxy

    我在实际安装过程中遇到了一些坑,首先是 OSX El Capitan 及以上的系统版本在安装时会出现 six 模块依赖错误,具体可以看这儿的讨论。还有一个问题是安装过程中会出现权限错误,需要以 root 权限执行。最后用以下命令成功安装,安装不了需要翻一下墙

    sudo pip install mitmproxy --ignore-installed six

    开始使用

    首 先需要配置一下网络环境,将手机和电脑连在同一个 wifi 环境下,然后进入手机的 设置 - 无线局域网,点击当前连接的 wifi 进入详情设置页面,在 http 代理那一栏输入当前连接的 ip 地址,端口填8080,这个 ip 地址可以在电脑上的 系统偏好 - 网络 里查看,配置完成如下图,


    网络环境配置完成后我们可以开始实际的抓包了,只需在电脑上打开终端(命令行操作窗口),然后输入 mitmproxy -p 8080,如果你看到如下页面说明你已成功进入抓包模式,迈出了第一步,cheer~


    接下去你可以用手机打开一些 App,不出意外你能看到一些 http 请求的列表。这时候我们还无法抓到 https 的包,还需要做一些额外配置。

    下面的操作是针对 iPhone 手机,其他设备也类似。用 iPhone 打开 Safari 浏览器并输入 mitm.it,这时你会看到如下页面,


    选择对应平台并安装证书,安装完成后就可以抓 https 的包了,官网上解释了这个工具是如何工作的

    注意:用浏览器打开时需要已经在抓包模式,否则是无法看到上述页面的

    好了,到这里我们已经完成了所有的准备工作,接下去就和我一起实际体验一下 https 的抓包过程吧。

    这里以知乎为例,用手机打开知乎,我们应该能看到知乎的请求出现在列表里了,类似下图:


    键盘上下移动,Enter 键进入查看详情,按 Tab 键切换顶部导航栏,如下图所示,


    Tips:输入z可以清空列表,输入f再输入~u xxx可以过滤出 url 为 xxx 的请求,更多匹配规则输入? 查看

    请求拦截

    上面演示的是常规的操作,下面介绍一下 mitmproxy 的另一强大功能,拦截修改 request 和 response。

    输入 i,然后输入 ~s 再按回车键,这时候就进入了 response 拦截模式。如果输入 ~q 则进入 request 的拦截模式,更多的命令可以输入 查看。拦截模式下的页面显示如下图所示,


    其中橘红色的表示请求正被拦截,这时 Enter 进入后 再按 e 就可以修改 request 或者 response。修改时是用 vim 进行编辑的,修改完成后按 a 将请求放行,如果要放行所有请求输入 A 即可。

    下图是我修改了某个答案的 response 请求将回答者的名字做了修改,因为只修改了 response 并不会影响其他的用户显示:)


    上面提到的那些指令在输入 后都能查看到,如下图,另外官网上也有很详细的说明

  • 相关阅读:
    linux Chrome 安装
    jQuery.extend 函数详解
    Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法
    Django——model字段类型 2
    Django 中的用户认证
    Expression<Func<T, bool>>与Func<T, bool>的区别
    根据funID,personID获取最新规划包项目相关信息
    SET ANSI_NULLS ON 在T-SQL中是什么意思
    SQL Server 2008中如何为XML字段建立索引
    PowerDesigner 建模后如何导入到数据库
  • 原文地址:https://www.cnblogs.com/xiaoaojiao/p/6115813.html
Copyright © 2020-2023  润新知