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


Posted in Python onJanuary 21, 2019

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

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

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

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

安装 mitmproxy

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

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

详解安装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.microsoft.com/zh-hans/downloads/直接下载即可,安装之后需要把 c++ de 库之类的东西都安装了,然后再在命令行进行安装 mitmproxy即可。

安装完之后查看 mitmproxy版本

命令行输入 mitmproxy --version

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

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

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

这样就成功了。

如何使用 mitmproxy抓包

开启抓包:mitmdump

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

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

mitmdump -p 8889

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

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

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

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

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

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

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

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

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

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

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

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

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

抓包之后的操作

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

1.开始抓包

mitmweb -p 8889

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

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

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

在 mitmproxy 上运行 python脚本

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

mitmdump -p 889 -s mitm.py

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

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

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

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

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

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

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

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

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

命令行上显示这样:

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

这样子就清楚多了。

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

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

响应的请求也可以获取:

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学Python之入门(二)基本数据类型
May 25 Python
Windows系统下多版本pip的共存问题详解
Oct 10 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 Python
python 实现对数据集的归一化的方法(0-1之间)
Jul 17 Python
Python使用try except处理程序异常的三种常用方法分析
Sep 05 Python
python判断数字是否是超级素数幂
Sep 27 Python
Python实现的爬取小说爬虫功能示例
Mar 30 Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 Python
Python 一行代码能实现丧心病狂的功能
Jan 18 Python
python 使用递归实现打印一个数字的每一位示例
Feb 27 Python
python如何写try语句
Jul 14 Python
python dict 相同key 合并value的实例
Jan 21 #Python
关于python之字典的嵌套,递归调用方法
Jan 21 #Python
对python 合并 累加两个dict的实例详解
Jan 21 #Python
python去重,一个由dict组成的list的去重示例
Jan 21 #Python
Python实现计算字符串中出现次数最多的字符示例
Jan 21 #Python
python3.6数独问题的解决
Jan 21 #Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 #Python
You might like
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
php通过排列组合实现1到9数字相加都等于20的方法
2015/08/03 PHP
PHP二维数组去重算法
2016/12/17 PHP
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
javascript实现数独解法
2015/03/14 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
简单介绍Python下自己编写web框架的一些要点
2015/04/29 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
Django发送邮件和itsdangerous模块的配合使用解析
2019/08/10 Python
Python: 传递列表副本方式
2019/12/19 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
大学毕业生通用自我评价
2014/01/05 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
保安2014年终工作总结
2014/12/06 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
学校党员干部承诺书
2015/05/04 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
bat批处理之字符串操作的实现
2022/03/16 Python