欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

WebSocket漏洞与防护详解

来源:本站整理 作者:佚名 时间:2017-05-03 TAG: 我要投稿

socket简介
一个socket是一次网络通信中的一个端点。socket总是分为两部分:一个IP地址和一个端口。
例如:当您访问www.myhack58.com时,你的计算机和网站的服务器正在使用socket(端点)进行通信。网站的端点将是:www.myhack58.com:80,你的计算机的端点将是你的IP地址,后跟任何随机端口号,如192.168.0.111:6574
关于WebSocket
传统上,HTTP活动是由客户端请求资源而服务器来提供服务。服务器不能自己与客户端通话。但这个限制已经被新技术WebSocket消除了。
WebSockets提供持久连接,也称为客户端和服务器之间的全双工连接,双方可以随时使用该连接开始发送数据。
它是如何工作的?
客户端,如浏览器,加载具有WebSocket功能的网页。

页面的源代码负责创建WebSocket连接。

该脚本通过WebSocket握手建立WebSocket连接。此过程从客户端向服务器发送常规HTTP请求开始。此请求中包含upgrade请求头,通知服务器客户端希望建立WebSocket连接。
请求如下所示:

值得注意的是,WebSocket使用ws作为访问方案而不是http。所以,上面的请求访问了:ws://127.0.0.1:9000 / websocket
如果服务器支持WebSocket(针对上述请求),则它将在其响应中使用upgrade请求头进行回复。
响应如下所示:

在这个阶段,协议将从HTTP切换到WS。并且在浏览器和服务器之间建立全双工连接。
在这个例子中,我们有一个WebSocket功能,它回传客户端发送的所有单词。例如:如果用户键入单词“Hiii”,那么服务器也会用“Hiii”来回复。
请求:

响应:

用户界面:

WebSockets的安全隐患
A.跨站WebSocket劫持
注意下面的请求。Origin头有不同的来源127.0.0.1:5555。该请求是使用受害者的cookie发送到WebSocket服务器。这意味着可以使用WebSocket发送类似于CSRF的攻击。

但是,这种攻击不止像CSRF将POST数据发送到WebSocket服务器,它还会读取服务器响应。这是因为默认情况下WebSocket服务器不检查“Origin”头,它只是使用cookies检查经过身份验证的用户会话,并将响应发送回请求的“Origin”。
因此,在上述情况下,攻击者也可以读取响应,从而代表受害者控制双向通信。
防护:
检查请求的“Origin”头。既然,这个标题是为了防止跨源攻击。如果“Origin”不被信任,那么只需拒绝该请求。例如:如果您的网站的域名为www.example.com,请检查请求是否源自该来源,如果是,则处理该请求。如果否,则拒绝。
另一个解决方案是使用基于会话的个人随机令牌(就像CSRF-Tokens)。生成服务器端,并将它们放在客户端的隐藏字段中。并要求验证。
B.网络敏感信息泄露
就像HTTP是纯文本协议一样,WebSockets协议也称为纯文本。这导致攻击者捕获和修改网络上的流量。
防护:
建议使用加密(TLS)WebSockets连接。它的URI方案是wss://。默认端口为443。
如下演示,请求访问ws://127.0.0.1:900/websocket/。如果它是一个安全连接,那么请求将访问wss://127.0.0.1:900/websocket/。
C.拒绝服务
默认情况下,WebSockets允许无限制的连接导致DOS。以下是无限次连接到WebSocket服务器的小脚本。

执行此脚本后,让我们看看WebSocket服务器的日志:

我们可以看到,几秒钟内就已经完成了475个连接。这将耗尽服务器资源,最终导致DOS攻击。
防护:
使用基于IP的速率限制将有助于解决这个问题。
速率限制应允许5-10连接自由,即不进行任何安全检查。但在10个连接之后,如果同一个IP尝试连接,那么应该向用户显示验证码,以确保自动化工具不会产生恶意请求,同时合法用户不会被拒绝服务。
结论
WebSockets非常适合全双工通信,有许多聊天应用程序和社交网站使用。实现WebSockets使应用程序更具可用性和吸引力。但就像任何其他技术一样,也需要在考虑安全性的情况下使用。
 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载