mitmproxy 代理介绍及入门
转载请注明出处 https://www.cnblogs.com/majianming/p/11823669.html
mitmproxy 是一个python 写成的代理工具,可以代理https、http等协议
重点是 可以自定义脚本 例如获取请求信息并保存到数据库,修改响应等等的操作(眨眼)
可以使用pip形式安装也可以使用编译好的二进制文件安装 (二进制文件 下载地址https://mitmproxy.org/downloads/)
但是 如果你需要自定义脚本而且安装第三方库的话 需要使用pip形式的安装
pip 形式的安装,首先保证你有安装了python 已经pip
下面以windows 安装为例
如果是windows 系统 还需要安装Microsoft Build Tools( https://www.microsoft.com/en-us/download/confirmation.aspx?id=48159)
然后
执行
pip install mitmproxy
如果需要在任何地方都能执行命令 ,那么最好按照提示将类似 C:\Users\User\AppData\Roaming\Python\Python37\Scripts 的路径加入系统环境Path ,否则 你可能需要一直使用全路径的形式访问
安装成功之后 上述路径下应该有 这些可执行文件

mitmweb.exe和mitmproxy.exe是可视化的代理程序
mitmproxy.exe打开会在控制台显示所有代理请求,但是windows下不可用,
mitmweb.exe 会打开默认的浏览器并显示所有代理请求

默认代理监听端口为8080 可以在命令行中 -p 8081 这里使用8080 端口 命令mitmweb (mitmweb -p 8080 )启动
接着我们在浏览器中实验效果 为了方便 我们使用
SwitchyOmega(https://chrome.google.com/webstore/detail/padekgcemlokbadohgkifijomclgjgif)进行代理切换


然后在 选择使用刚刚创建的代理就可以了
然后访问一个网站 就可以在刚刚弹出来的窗口中看到所有的请求了 (如果是https 系统需要导入证书 证书一般在用户目录的.mitmproxy文件夹中,
如果是火狐,因为mitmproxy 的根证书不是使用浏览器的证书信任关系(火狐自己有一套证书体系),所以 需要在设置→ 隐私和安全->安全->证书->查看证书→证书颁发机构→导入 导入证书)

如果需要些脚本
可以参考一下的格式 这个脚本是将登录请求保存下来 并把信息发送到指定的服务器上
import time
import mitmproxy.http
import requests
from mitmproxy import ctx
intercept_url = "xx"
report_server_url = "xxxx"
class LoginIntercept:
def request(self, flow: mitmproxy.http.HTTPFlow):
if intercept_url in flow.request.pretty_url:
ctx.log.info("监听地址 %s" % flow.request.pretty_url)
ctx.log.info("请求头 %s" % flow.request.headers)
info = {
"url": flow.request.pretty_url,
"headers": str(flow.request.headers),
}
init_data = {"update_timestamp": int(time.time()),
"info": info}
try:
requests.post(report_server_url, json=init_data,timeout=2)
except Exception as e:
ctx.log.error("更新信息失败!原因【%r】" % e)
addons = [
LoginIntercept()
]
命令行 mitmweb -p 8080 -s script.py 启动
转载请注明出处 https://www.cnblogs.com/majianming/p/11823669.html
参考
github例子 https://github.com/mitmproxy/mitmproxy/tree/master/examples
mitmproxy 代理介绍及入门的更多相关文章
- mitmproxy 代理工具介绍:rewrite和map local实现
在接口测试中,会用到抓包工具或者代理工具,常用代理工具包括charles. burpsuite. fiddler.mitmproxy等,ssh -D参数 可实现socks5代理.网络嗅探工具可以使用t ...
- Redis介绍及入门安装及使用
Redis介绍及入门安装及使用 什么是Redis Redis is an open source (BSD licensed), in-memory data structure store, use ...
- .NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一)
在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下FluentValidation验证组件.那里只是概述了一下,并没有对其使用和强大功能做深入研究 ...
- freemarker语法介绍及其入门教程实例
# freemarker语法介绍及其入门教程实例 # ## FreeMarker标签使用 #####一.FreeMarker模板文件主要有4个部分组成</br>#### 1.文本,直接输 ...
- (转)私有代码存放仓库 BitBucket介绍及入门操作
转自:http://blog.csdn.net/lhb_0531/article/details/8602139 私有代码存放仓库 BitBucket介绍及入门操作 分类: 研发管理2013-02-2 ...
- NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(转载)
原文地址:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_FluentValidation_1.html 阅读目录 1.基本介绍 ...
- 读写Word的组件DocX介绍与入门
本文为转载内容: 文章原地址:http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html 开源Word读写组件DocX介绍与入门 阅读 ...
- [转帖]Druid介绍及入门
Druid介绍及入门 2018-09-19 19:38:36 拿着核武器的程序员 阅读数 22552更多 分类专栏: Druid 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议 ...
- Mysql数据库的简单介绍与入门
Mysql数据库的简单介绍与入门 前言 一.下载与安装 1.下载 官网下载MYSQL5.7.21版本,链接地址https://www.mysql.com/downloads/.下载流程图如下: 找到M ...
随机推荐
- poj 2186: Popular Cows(tarjan基础题)
题目链接 tarjan参考博客 题意:求在图上可以被所有点到达的点的数量. 首先通过tarjan缩点,将所有内部两两可达的子图缩为一点,新图即为一个有向无环图(即DAG). 在这个DAG上,若存在不止 ...
- js 自定义map
<script> function HashMap(){this.map = {};} HashMap.prototype = { put : function(key, value){ ...
- linux查找一个文件的路径
- spring依赖搜索
spring项目在启动时,spring框架会根据名称自动搜索实现类. 这在日常开发中还是很有用的. 下面举两个例子. 1. 先写一个接口(或者抽象类) public interface IPerson ...
- spring-boot整合mongodb多数据源的案例
1.运行环境 开发工具:intellij idea JDK版本:1.8 项目管理工具:Maven 4.0.0 2.GITHUB地址 https://github.com/nbfujx/springBo ...
- Windows系统启动iis方法详解
很多网友一般都用Windows 系统自带的iis服务器来配置web网站,在本地进行调试和修改后才正式上线.虽说操作不难,但是小白来说却无从下手,很多人根本不知道iss在哪,怎么启动,更谈不上配置或者其 ...
- MacOS Catalina 导致bash命令失效的一些总结
欢天喜地的升级了最新的OS后,第一个发现bash失效的是使用pod命令出现: -bash: pod: command not found 这个不会导致cocoapods无法正常使用,可以使用绝对路径里 ...
- CVE-2017-0213 | 记一次失败的提权经历
环境: CVE-2017-0213下载 提权步骤: 提权失败.... 好迷啊,,,,事后查了一下补丁 我的wind7上也没装啊,然后防火墙也是关闭的 迷了迷了....
- 几乎相同的 deal.jsp 代码(index.jsp不变),在IDEA相同项目运行,结果却不一样,实在想不出来
目录 主要问题 主要项目 index.jsp: deal.jsp(正确可运行): deal.jsp(错误不可运行): 错误的代码运行图片: 可运行的代码运行图片 主要问题 几乎相同的 deal.jsp ...
- wxparse使用(富文本插件)
优点:目前已知唯一可以转化HTML到小程序识别的插件 缺点:转换一个HTML标签可能需要大量的微信小程序标签还有样式 配置:第一步,下载 https://github.com/icindy/wxPar ...