WebSockets 介绍
WebSockets广泛使用在现代web应用程序。它们通过HTTP发起,并在两个方向上提供具有异步通信的长期连接。
WebSockets用于各种目的,包括执行用户操作和传输敏感信息。实际上,常规HTTP产生的任何web安全漏洞也可能与WebSockets通信有关。
声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
WebSockets 介绍
https://portswigger.net/web-security/learning-paths/websockets-security-vulnerabilities/websockets/websockets/websockets
WebSockets广泛使用在现代web应用程序。它们通过HTTP发起,并在两个方向上提供具有异步通信的长期连接。
WebSockets用于各种目的,包括执行用户操作和传输敏感信息。实际上,常规HTTP产生的任何web安全漏洞也可能与WebSockets通信有关。
操纵WebSocket流量
发现WebSockets安全漏洞通常涉及以应用程序意想不到的方式操纵它们。比如拦截修改WebSocket消息,重放WebSocket消息,操纵WebSocket连接。
拦截修改WebSocket信息
proxy 标签中,配置规则
重放和生成新的WebSocket消息
除了动态地拦截和修改WebSocket消息外,您还可以重播单个消息并生成新消息。
操作WebSocket连接
除了处理WebSocket消息外,有时还需要处理建立连接的WebSocket握手。
在不同的情况下,操作WebSocket握手可能是必要的:
-
它可以让你到达更多的攻击面。 -
有些攻击可能会导致您的连接断开,因此您需要建立一个新的连接。 -
原始握手请求中的令牌或其他数据可能已经过时,需要更新。
burpsuite 操作WebSocket握手
WebSockets 安全漏洞
原则上,任何web安全漏洞都可能出现在WebSockets中:
传输到服务器的用户提供的输入可能会以不安全的方式进行处理,从而导致SQL注入或XML外部实体注入等漏洞。
通过WebSockets到达的一些盲漏洞可能只能使用带外(OAST)技术检测到。
如果攻击者控制的数据通过WebSockets传输给其他应用程序用户,那么它可能导致XSS或其他客户端漏洞。
操纵WebSocket消息来利用漏洞
大多数影响WebSocket的基于输入的漏洞可以通过篡改WebSocket消息的内容来发现和利用。
例如,假设一个聊天应用程序使用WebSockets在浏览器和服务器之间发送聊天消息。当用户输入一个聊天消息时,像下面这样的WebSocket消息被发送到服务器:
{"message":"Hello Carlos"}
消息的内容(再次通过WebSockets)传输到另一个聊天用户,并在用户的浏览器中呈现如下:
<td>Hello Carlos</td>
在这种情况下,如果没有其他输入处理或防御,攻击者可以通过提交以下WebSocket消息来执行概念验证XSS攻击:
{"message":"<imgsrc=1onerror='alert(1)'>"}
Lab: Manipulating WebSocket messages to exploit vulnerabilities 操纵WebSocket消息来利用漏洞
https://portswigger.net/web-security/websockets/lab-manipulating-messages-to-exploit-vulnerabilities
实验目的
这个在线商店有一个使用WebSockets实现的实时聊天功能。
您提交的聊天消息将由支持代理实时查看。
为了解决这个问题,使用WebSocket消息在支持代理的浏览器中触发一个alert()
弹出窗口。
实验过程
websocket 和 http 操作类似。他需要在建立连接时就抓取到。如果后面没有抓到数据包,就刷新页面。
点击“Live chat”发送聊天信息。/chat
可以看到在交流 PING PONG
尝试发送XSS
<imgsrc=1onerror='alert(1)'>
存在转译,类似 http 中的XSS,抓包然后发过去
原文始发于微信公众号(进击的HACK):WebSockets XSS |burpsuite翻译
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论