mitmproxy的简单使用
第1则
---抓包工具mitmdump的使用---
一、什么是抓包?怎么抓包?
1、抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等
2、我们平常可以用一些抓包工具进行抓包操作。一般测试人员常用的抓包工具是:fiddler、charles、mitmproxy三种。鹏鹏在这里简略介绍下这三种抓包工具的优缺点。
(1)fiddler:免费,但是跨平台能力较差。在MAC上非常非常不好用。但是在windows上用起来感觉不错,重点是免费
(2)charles:跨平台不错,windows和mac上都能支持,遗憾的是这是一个收费软件。
(3)mitmproxy:跨平台能力不错、支持脚本扩展。是测试开发工程师常用的一款抓包工具,免费。只不过它是一个控制台的形式操作。
下面我们看看mitmproxy的介绍吧。
二、mitmprox介绍
1、Mitmproxy是一个免费的开源交互式的HTTP/HTTPS代理。
2、mitmproxy就是用于MITM的proxy,MITM即中间人攻击(Man-in-the-middle attack)。用于中间人攻击的代理首先会向正常的代理一样转发请求,保障服务端与客户端的通信,其次会看看请求或者响应结果信息,记录其截获的数据或篡改数据,引发服务端或客户端特定的行为。
3、不同于fiddler或wireshark等抓包工具,mitmproxy不仅可以截获请求帮助开发者查看,分析,更加可以通过自定义脚本进行二次开发(篡改信息重新发送)。
4、mitmproxy还有两个关联组件。一个是mitmdump,它是mitmproxy的命令行接口,利用它我们可以对接Python脚本,用Python实现监听后的处理。另一个是mitmweb,它是一个Web程序,通过它我们可以清楚观察mitmproxy捕获的请求。
下面我们来了解它们的用法
三、mitmdump的使用
这边主要用windows来做演示。
1、首先安装好Mimtproxy(具体安装方法请关注公众号回复“软件安装”获取)
2、打开cmd(命令提示符)界面。MAC的话是终端界面
3、输入ipconfig 查看IP地址。(mac是ifconfig)鹏鹏这边连的是WIFI网络所以是在无线局域网适配器这里取得IP地址,如果是网线连接的话取以太网的就可以了。地址取IPv4的地址哦。把IP地址记在小本本中一会要用。
4、在命令提示符中输入:mitmdump。回车开始抓包。默认端口是8080。
5、这里有几种mitmdump的几种用法
-q:屏蔽mitmdump默认的控制台日志,只显示自己脚本中的
-s:入口脚本文件
-p:更改端口为8889,默认为8080
修改脚本文件时,不用重启也会生效
6、打开mitmdump后就可以在手机或pc上做代理抓包啦!这边注意下安卓手机安卓版本6以上的抓不了HTTPS的包,所以需要抓安卓软件的话建议使用安卓模拟器。
7、打开安卓模拟器后(这里以雷神模拟器为例),打开模拟器---设置---长按WLAN---修改网络---高级选项---代理设置为手动---在代理服务器主机和端口输入电脑的IP地址和mitmdump设置的端口号---点击保存。
8、代理设置好后就可以开始抓包了么?不还差一步。我们需要打开浏览器在地址栏中输入mitm.it,选择安卓-下载证书。
证书下载好以后,点击下载好的证书进行安装
点击确认后,他会提示你设置密码,如果设置过的话不会弹窗。密码设置结束后会直接提示安装完成。
9、证书安装完成后就可以开始抓包了!下面是抓取结果。如果想直接输出入参和出参甚至是把抓取到的数据写入文件中,需要写一些简单的脚本进行输出。python脚本写法下期更新。关注公众号“跟着鹏鹏学测试”。学测试不迷路!
扫描二维码 | 关注我们
微信号 : GZPPXCS
mitmproxy的简单使用的更多相关文章
- 抓包工具Charles,anyproxy,mitmproxy等
Charles:图形化界面,看着比较方便友好,也可以抓取https,不过电脑和手机都要下载证书,主要我的电脑上不能添加一添加就卡死 所以,抓取https的话,就用mitmproxy比较简单 1.安装C ...
- App爬虫神器mitmproxy和mitmdump的使用
原文 mitmproxy是一个支持HTTP和HTTPS的抓包程序,有类似Fiddler.Charles的功能,只不过它是一个控制台的形式操作. mitmproxy还有两个关联组件.一个是mitmdum ...
- Python接口自动化测试框架实战 从设计到开发
第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- Android 抓包,监控流量工具之 mitmproxy
转:http://greenrobot.me/devpost/how-to-debug-android-http-get-started/ mitmproxy实践教程之调试 Android 上 HTT ...
- Python爬虫入门教程 47-100 mitmproxy安装与安卓模拟器的配合使用-手机APP爬虫部分
1. 准备下载软件 介绍一款爬虫辅助工具mitmproxy ,mitmproxy 就是用于MITM的proxy,MITM中间人攻击.说白了就是服务器和客户机中间通讯多增加了一层.跟Fiddler和Ch ...
- 手机app数据的爬取之mitmproxy安装教程
mitmproxy是一个支持HTTP和HTTPS的抓包程序,类似Fiddler.Charles的功能,只不过它通过控制台的形式操作. 此外,mitmproxy还有两个关联组件,一个是mitmdump, ...
- 13.App爬取相关库的安装(Charles,Mitmproxy,Appium)
由于App没有像浏览器一样直观的后台请求工具,主要用一些抓包技术抓取数据.(目前也在学习安装,参考书籍.) 首先呢,一些简单的接口通过Charles或mitmproxy分析,找出规律,直接用程序去抓取 ...
- 代理工具--mitmproxy
#代理工具 mitmproxy 指令:mitmproxy -b ip -p port(代理ip设置为:ip,端口设置为:port) 拦截request: 输入字母“i”(代表Intercept fil ...
随机推荐
- 【Copy攻城狮日志】docker搭建jenkins拉取svn代码打包vue项目部署到nginx
↑开局一张图,故事全靠编↑ 前言 打开搜索引擎输入『Copy攻城狮』,发现最新的一条记录已经是去年的4月,意味着我又有一年时间没有再总结成长了.习惯了“温水煮青蛙”的日子,无论是经验水平还是薪资收入, ...
- [JavaWeb基础] 021.Action中result的各种转发类型
在struts2中, struts.xml中result的类型有多种,它们类似于struts1中的forward,常用的类型有dispatcher(默认值).redirect.redirectActi ...
- python的转义
print('"I\'m OK"') print("I'm OK") print('"I"\'m \"OK"') &qu ...
- 07 . Nginx常用模块及案例
访问控制 用户访问控制 ngx_http_auth_basic_module 有时我们会有这么一种需求,就是你的网站并不想提供一个公共的访问或者某些页面不希望公开,我们希望的是某些特定的客户端可以访问 ...
- 这些Java8官方挖过的坑,你踩过几个?
导读:系统启动异常日志竟然被JDK吞噬无法定位?同样的加密方法,竟然出现部分数据解密失败?往List里面添加数据竟然提示不支持?日期明明间隔1年却输出1天,难不成这是天上人间?1582年神秘消失的10 ...
- C语言/Linux命令行参数argc、argv[ ]详解
1.void main(int argc,char *argv[]) argv[]:表示的是一个指针数组,一共有argc个元素,其中存放的是指向每一个参数的指针. argc:参数个数 2.以Linux ...
- 工业级CC1125模块有哪些优势?主要应用领域?
CC1125无线模块是基于 TI 的 CC1125无线收发芯片设计,是一款完整的.体积小巧的.低功耗的无线收发模块.是 TI Chipcon 推出的 ISM 频段高性能无线收发芯片之一,最大输出功率可 ...
- (Java实现) 洛谷 P1223 排队接水
题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行,第一行为n:第二行分别 ...
- Java实现 LeetCode 80 删除排序数组中的重复项 II(二)
80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...
- Android中如何使用对话框(单选对话框和多选对话框)
在主XML中声明两个Button,声明Id package com.example.myapplication; import androidx.appcompat.app.AlertDialog; ...