小巧实用的HTTP代理抓包工具:mitmproxy

常见的http代理有:Fiddler、Charles以及下来要介绍的Mitmproxy,几款抓包软件本人都使用过,可以说是各有各的特点。Mitmproxy小巧强大,最吸引我的是它支持加入Python脚本,方便开发人员直接处理监听到的数据。

Explicit HTTP

安装

这步比较简单,直接pip install mitmproxy,或者自行下载安装包。更多更详细的安装说明可以查看这篇文章:MitmProxy的安装

使用

window下不支持使用mitmproxy,但可以使用另外两个附带的组件:mitmdumpmitmweb,二选一在控制台输入,代理开启后默认的监听端口为8080mitmdump是纯控制台输出的监听形式,mitmweb则对应有相关的web监听界面。

mitmdump

mitmweb

更改监听端口?添加-p参数,如mitmdump -p 10000;想指定py脚本?带上-s参数即可,如mitmweb -s out.py;完整的参数信息及使用应该查看官网说明,下来的示例中会介绍Python脚本的使用。

示例

mitmproxy中定义了一系列完整的监听流程事件,通常这并不需要我们关注太多,常见的Events莫过于requestresponse,完整的mitmproxy事件请点击这里查看,下面的简单示例或许对你有帮助:

import mitmproxy.http


def request(flow: mitmproxy.http.HTTPFlow):
    """
        The full HTTP request has been read.
    """
    
    flow.request.headers["User-Agent"] = "Chrome/66.0.3497.100"
    
    pretty_url = flow.request.pretty_url
    print(pretty_url)


def response(flow: mitmproxy.http.HTTPFlow):
    """
        The full HTTP response has been read.
    """

    content = flow.response.content
    print(content)

小结

在功能上多数抓包软件大同小异,重要的还是得根据场景来选择最合适的;我当初接触到mitmProxy,是因为在爬取某APP数据的时候,尝试了一段时间都没有还原出客户端接口加密的请求流程,后来结合使用了AppiummitmProxy,算是部分实现了该需求。综上,全文只是简单浅显的介绍了mitmproxy,而往往看官方文档才是最完整和高效的。

示例源码

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏桥路_大数据

react native打包apk

40430
来自专栏一“技”之长

使用Express快速搭建前端项目框架 原

    Express是基于Node.js的前端Web开发框架,使用其可以简洁快速的创建健壮友好的API服务。在前端或移动端的开发过程中,可以借助Express...

13610
来自专栏FreeBuf

WPScan使用完整攻略:如何对WordPress站点进行安全测试

WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用PHP编写,能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和Wo...

35000
来自专栏耕耘实录

关于Linux中权限列中的加号及点的深度探索

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

10410
来自专栏向治洪

window环境下搭建react native及相关插件

可以先浏览一下中文翻译的开发文档具体了解一下关于React Native,想要查看官方文档可以点http://facebook.github.io/react-...

19880
来自专栏SpringBoot 核心技术

第十五章:使用SpringBoot validator让数据更真实

17630
来自专栏云计算教程系列

如何在CentOS 7上使用uWSGI和Nginx为Flask应用程序提供服务

在本指南中,我们将使用CentOS 7上的Flask微框架设置一个简单的Python应用程序。本文的大部分内容将是关于如何设置uWSGI应用程序服务器以启动应用...

22300
来自专栏小狼的世界

phpExcel导出文件时内存溢出的问题

在使用PHPExcel导出文件时,经常会因为文件过大导致PHP内存溢出报错,为了解决这个问题,可以使用PHPExcel提供的参数进行优化。这里说的Excel文件...

26730
来自专栏JetpropelledSnake

Linux学习笔记之Linux启动级别

对于绝大多数Linux程序员来说,进入Linux系统后一般看到的是黑乎乎的界面(开发模式),因为系统如果启动选择开发模式,会减少启动时间,优化内存等。但是通常我...

13810
来自专栏kalifaの日々

window下用pin安装flask步骤及import flask报错的解决方案

安装过程: 1.下载get-pip.py,下载路径并不重要 不用放到Python安装目录里。 2.打开下载路径 python get-pip.py 运行这个py...

41670

扫码关注云+社区

领取腾讯云代金券