资讯专栏INFORMATION COLUMN

安装mitmproxy以及遇到的坑和简单用法

baoxl / 2253人阅读

摘要:安装完之后查看版本命令行输入显示错误,这是因为操作系统不支持使用这个命令,我们可以使用或代替。发现需证书有问题,我们还需要安装提供的证书,要不抓包失败。安装证书浏览器输入然后根据你的手机系统进行安装即可。

mitmproxy 是一款工具,也可以说是 python 的一个包,在命令行操作的工具。

MITM 即中间人攻击(Man-in-the-middle attack)

使用这个工具可以在命令行上进行抓包,还可以对所抓到的包进行脚本处理,非常有用。

安装 mitmproxy

安装这个我们必须先安装了 pip。 pip 在安装了 python之后自带的,如果你安装了 python 就可以忽略了,如何安装这里就不说了,只说安装 mitmproxy

打开命令行,输入 pip install mitmproxy 即可

按下回车即可下载

但是到最后下载失败

error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools

是因为安装这个包的 window 系统需要首先安装 Microsoft Visual C++ V14.0以上 才行。

可以在https://visualstudio.microsof... 直接下载即可,安装之后需要把 c++ de 库之类的东西都安装了,然后再在命令行进行安装 mitmproxy即可。

安装完之后查看 mitmproxy版本

命令行输入 mitmproxy --version

显示错误,这是因为 window操作系统不支持使用 mitmproxy 这个命令,我们可以使用 mitmdump 或 mitmweb 代替。

这样就成功了。

如何使用 mitmproxy抓包

开启抓包:mitmdump

这样子就是开始抓包了,监听了所有的地址,端口是 8080,如果需要改端口号,可以按 ctrl + c 退出抓包,然后输入下列命令:

mitmdump -p 8889

这样子就把端口号改成 8889 了

如果需要抓手机的包的话,就需要在你连接的 wifi 修改代理

上面的主机名字是 你电脑抓包的 ip 地址,端口号是刚才设置的端口号。设置完了打开浏览器查看。

发现需证书有问题,我们还需要安装 mitmproxy 提供的证书,要不抓包失败。

安装证书:浏览器输入 mitm.it

然后根据你的手机系统进行安装即可。

然后就可以进行抓包了。在浏览器输入 baidu.com 就可以看到下面内容了。

电脑端的也是这样差不多,都是设置代理后安装证书,这里就不多说了。

抓包之后的操作

由于在 window上操作,只能使用 mitmdump 和 mitmweb这两个命令,mitmdump 命令是没有界面,只能进行默默地抓包,不能进行数据包的查看和过滤。而 mitmweb 和在一个网页上进行抓包的调试。所以下面我们用 mitmweb 来进行调试。

1.开始抓包

mitmweb -p 8889

在你输入 baidu.com 的时候就会看到这些包了。

查看包的请求信息和响应信息只需要点击相对应的包即可。其他的就不多说了。

在 mitmproxy 上运行 python脚本

mitmproxy 的强大之处就在于它能够运行 python 脚本来处理相关的请求,现在就来看看如何处理吧。

mitmdump -p 889 -s mitm.py

这个就是在抓包的同时运行了 mitm.py 的脚本了,代码是:

# 必须这样写 def request(flow):  print(flow.request.headers)  # 打印请求头

这个是打印抓到的请求头,方法名和参数的名称是固定的,写错了就运行不了这个脚本。

这样子就开始了,然后在手机上打开网页。

这样子就把他们的请求头给输出了。

但是输出并不明显,我们可以使用里面的一个日志模块来输出,这样子就会显示出不同的颜色了。

命令行上显示这样:

这样子就清楚多了。

除了上面的请求头,我们还可以访问他们的请求方法,请求路径等。

响应的请求也可以获取:

同样,这里的方法名和参数也是固定的,不写这个会捕捉不到。

本文完。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43059.html

相关文章

  • vue项目中的遇到坑和感悟

    摘要:如何少写冗余代码,优化性能,才是我们需要考虑的。始于,每天进步一点点,持续更新 使用keep-alive包裹的组件/路由,打开一次后created只会执行一次,有两种情况,一、如果要重新渲染部分数据,可以在activated中做处理;二、路由/组件重新重新created,可以使用官方推荐的:key=key ,然后去改变key的值,组件就会重新挂载了 beforeRouteEnter...

    happyfish 评论0 收藏0
  • 微信小程序开发中遇到坑和解决办法

    摘要:和部分组件表现的差异微信最小化后正在播放的会暂停,需要再次点击播放按钮,如果视频设置的是不可控,没有开始播放按钮,视频暂停了就无法继续播放了,没有该问题。 1、原生组件的层级问题 video、canvas、camera等原生组件层级最高,其他组件无论z-index为多少,都无法覆盖在原生组件上。 这里拿video组件做示例,如果需要点击视频支持微信开放能力,例如授权手机号,获取用户信息...

    princekin 评论0 收藏0
  • k8s 1.12.1 坑和解决方法

    摘要:的坑和解决方法镜像被墙,需要自己的镜像,然后改。解决办法是清空目录,然后将拷贝过来安装对应版本的。默认不允许往节点装东西,强行设置下允许自己的无视没权限 k8s 1.12.1 的坑和解决方法 pull 镜像: gcr.io 被墙,需要 pull 自己的镜像,然后改 tag。具体需要 pull 哪些镜像呢,kubeadm config images 可查看我自己 build 的都放到了 ...

    Shisui 评论0 收藏0
  • k8s 1.12.1 坑和解决方法

    摘要:的坑和解决方法镜像被墙,需要自己的镜像,然后改。解决办法是清空目录,然后将拷贝过来安装对应版本的。默认不允许往节点装东西,强行设置下允许自己的无视没权限 k8s 1.12.1 的坑和解决方法 pull 镜像: gcr.io 被墙,需要 pull 自己的镜像,然后改 tag。具体需要 pull 哪些镜像呢,kubeadm config images 可查看我自己 build 的都放到了 ...

    paraller 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<