mitmproxy 使用教程 从安装到基本操作实现零距离

简介
mitmproxy是一个交互式的、支持SSL/TLS的拦截代理,是一款用于HTTP /1,HTTP /2和WebSockets的抓包工具
mitmdump是mitmproxy的命令行版本。与tcpdump类似
mitmweb是mitmproxy的基于Web的界面的版本。
安装
	    pip install mitmproxy 
		##(如果权限不够建议sudo)

启动

	  mitmproxy
	 ##或者指定端口
      mitmproxy -p 8888

抓包配置

  1. 配置设备的代理地址 使设备连接到同一个wifi环境下
  2. 修改系统代理服务器地址为运行mitmproxy的那台机器(本机)的ip地址,端口设定为你启动mitmproxy时设定的端口,默认使用8080
  3. 手机做同样操作,修改wifi代理为 【手动】,然后指定ip地址和端口
  4. 设置证书信任 如何设置?

使用

快捷键说明
q退出(相当于返回键,可一级一级返回)
d删除当前(黄色箭头)指向的链接
D恢复刚才删除的请求
G跳到最新一个请求
g跳到第一个请求
C清空控制台(C是大写)
i可输入需要拦截的文件或者域名(逗号需要用\来做转译)
a放行请求
A放行所有请求
?查看界面帮助信息
enter查看光标所在列的内容
tab切换栏 查看 Request 和 Response 的详细信息
/搜索body里的内容
esc退出编辑
e进入编辑模式
w保存当前的response到文件
r重新发送请求
h切换标签页
p切换请求
K显示快捷键(大写)
C显示命令(大写)
关于导出当前package为curl命令
  1. 命令行页面 输入 w,进入export模式
  2. 输入 export.clip curl @focus导出当前package
  3. 直接ctrl+v 复制到文本编辑器即可
关于使用scripts脚本
  1. 编写脚本,示例
import random
from time import sleep
from mitmproxy import http

#当接收到客户端请求时,随机延时5-7s
def request(flow: http.HTTPFlow) -> None:
   delay = random.uniform(5, 7)
   sleep(delay)
   
#接受到response时,对请求status_code和content做判断或者处理
def response(flow: http.HTTPFlow) -> None:
   if xxx:
       flow.response.status_code = random.choice(ERROR_CODES)
       flow.response.content = None
  1. 重新启动mitmproxy, 命令
    mitmproxy --listen-port 8989 --ssl-insecure --set console_mouse=false -s myscript.py
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值