收录于话题
#Java面试那些事儿
425个内容
大家好,我是D哥
点击关注下方公众号,Java面试资料 都在这里
你是否会对应用程序正在发出的请求感到好奇,以及它会返回什么响应,你是否曾经捕获过流量用它来研究某些东西是如何工作的,如果你有,那么mitmproxy这个工具你应该会很喜欢。
mitmproxy是一个支持 HTTP 和 HTTPS 的抓包程序,有类似 Fiddler、Charles 的功能,只不过它是一个控制台的形式操作。MitmProxy具有以下特点:在 Mac 上,mitmproxy 很容易用 brew 安装:
brew install mitmproxy
在 Windows 和 Linux 上,下载二进制版本并将其放在路径中的某个位置。要启动 mitmproxy,需要输入mitmproxy,它将启动绑定到端口 8080。
>mitmproxy
命令行界面 (CLI) 具有类似 VIM 的键绑定。q将退出,方向键或h,j,k,l你会向上移动,并通过请求列表下来。?将加载帮助,<<enter>>并将深入研究特定请求。
如果你更喜欢鼠标而不是 Vim 快捷键,mitmproxy 也有一个 Web 界面。高级功能在Web界面中更容易发现,但CLI版本便于快速捕获会话。让我们设置 Internet 连接以使用此代理。在macOS下,在Setting -> Network下。
在代理下,启用 HTTP 和 HTTPS 代理并选择端口 8080:
如果我们尝试在 Web 浏览器中发出基于 HTTPS 的请求(例如加载 twitter.com),就会发生一些有趣的事情。中间人攻击 (MITM) 是一种安全威胁,攻击者可以在传入和传出请求之间进行攻击。你认为你是在和 Twitter.com 对话,但你是在和中间的那个人说话,他在为你和 Twitter 说话。此 MITM 可以查看您发送的所有内容,甚至可以更改你接收的内容。
HTTPS 协议可防止 MITM 攻击。HTTPS 协议非常复杂,但我们需要知道的是 HTTPS 使用受信任的证书颁发机构 (CA) 来签署证书。
你可以在浏览器中查看你正在查看的网站的证书是由哪个 CA 签署的。
这对于保护在线通信非常有用,但对于我们的调试目的来说却是个问题。mitmproxy 生成了一个证书。我们所需要的只是让我们的机器信任它。
mitmproxy 在您第一次运行时生成了证书和私钥。在 ~/.mitmproxy/mitmproxy-ca-cert.cer 里面。
目前,mitmproxy 已经在Github上标星 24K,累计分支 3K(Github地址:https://github.com/mitmproxy/mitmproxy)
最后,D哥也建了一个技术群,主要探讨一些新的技术和开源项目值不值得去研究及IDEA使用的“骚操作”,有兴趣入群的同学,可长按扫描下方二维码,一定要备注:城市+昵称+技术方向,根据格式备注,可更快被通过且邀请进群。
▲长按扫描