什么是 webSocket?攻击面、安全风险与测试要点

用burp测试web应用的时候,proxy除了http/https 还有websockets。

websockets用来干啥的,安全风险何在,如何测试。试着说一下。。。。


1 细数 Websocket and HTTP

协议层面:HTTP vs WebSocket

  • HTTP
    • 基于请求-响应模型,客户端必须主动发起请求,服务器才能返回数据。
    • 每次请求独立,通常是短连接(HTTP/1.1 支持 Keep-Alive,但仍是请求驱动)。
  • WebSocket
    • 在单个 TCP 连接上实现双向通信,握手完成后,客户端和服务器可互相主动发送消息,无需重复握手。
    • 有状态协议,连接保持打开,支持实时交互。

连接方式

  • HTTP
    • 每次请求都需完整 HTTP 报文头,开销大。
  • WebSocket
    • 握手阶段通过 HTTP 协议升级(Upgrade: websocket),之后切换到 WebSocket 协议。
    • 通信时仅需轻量级帧结构,开销小。

典型使用场景

  • HTTP:网页加载、API 调用、文件传输。
  • WebSocket :实时性要求高的应用,如:
    • 聊天系统
    • 在线游戏
    • 股票行情推送
    • 协作编辑

如何加固第一步+s

  • HTTP
    • 可使用 HTTPS 加密,成熟度高,安全工具支持广泛。
  • WebSocket
    • 可使用 WSS(WebSocket Secure),但安全测试工具支持较弱,渗透测试难度更高。

2 WebSocket 与 HTTP 的关系

  • 相同点
    • 都基于 TCP,都是应用层协议。
  • 不同点
    • WebSocket 支持双向通信,HTTP 单向。
    • WebSocket 需握手建立连接。
  • 联系
    • 握手阶段通过 HTTP,之后独立于 HTTP。

3 攻击面分析

根据 Black Hills Information SecurityWeb Security Academy 的研究,WebSocket 的攻击面包括:

  1. 协议降级攻击
    • 将 WebSocket 降级为 HTTP,利用客户端库漏洞(如 socket.io)。
  2. 握手中断
    • 在 HTTP Upgrade 阶段进行拦截或篡改,导致连接失败或劫持。
  3. 消息篡改与注入
    • 利用缺乏严格验证的消息格式,进行 XSS、命令注入。
  4. 认证与授权缺陷
    • 长连接状态下,令牌过期处理不当,导致会话劫持。
  5. DoS 攻击
    • 利用持续连接消耗服务器资源。

安全测试要点


总结

WebSocket 提供了高效的实时通信能力,但也带来了新的安全挑战。相比传统 HTTP,WebSocket 的攻击面更广,测试难度更高。安全团队应重点关注握手过程、消息验证、会话管理,并结合专业工具进行渗透测试。

相关推荐
cipher2 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行4 天前
网络安全总结
安全·web安全
red1giant_star5 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
ZeroNews内网穿透5 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
一名优秀的码农5 天前
vulhub系列-14-Os-hackNos-1(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
Libraeking5 天前
05 安全边界:MCP Server 的权限沙箱与敏感数据保护
安全
努力的lpp5 天前
SQLMap CTF 常用命令全集
数据库·web安全·网络安全·sql注入
龙仔7255 天前
在麒麟V10服务器安全加固,sshd防暴力破解加固,实现“密码错误3次封IP”的需求
服务器·tcp/ip·安全
努力的lpp5 天前
SQL 报错注入
数据库·sql·web安全·网络安全·sql注入
上海云盾-小余5 天前
即时通讯App的DDoS防御架构设计
运维·服务器·安全