BurpSuite中文网站 > 热门推荐 > BurpSuite WebSocket消息怎么抓 BurpSuite WebSocket记录不显示怎么处理
教程中心分类
BurpSuite WebSocket消息怎么抓 BurpSuite WebSocket记录不显示怎么处理
发布时间:2026/05/29 14:46:22

  在站点测试的时候,WebSocket消息要怎么去抓,还有明明操作已经发生了,可记录就是不显示出来,碰到这种情况,比较常见的排查顺序是,先去看一看代理这条链路,它到底有没有经过Burp,然后再去检查一下WebSocket的历史记录,是不是被什么东西给过滤掉了,按照Burp官方文档的说法,WebSocket的记录,是被放在【代理】这个标签下面的【WebSockets历史记录】里面去查看的,这个东西可以用来观察、拦截,还有修改浏览器和服务器之间,通过WebSocket发来发去的那些通信内容。

  一、WebSocket消息要怎么抓

 

  在动手去抓WebSocket消息之前,要先把一件事给确认下来,那就是浏览器的流量,它是不是已经稳稳当当地走到了Burp那里,一个WebSocket的连接,它的握手动作,是从一个HTTP请求给升级过来的,要是前面的代理、证书,还有登录的状态,这几个环节没有处理好,那后面的消息,自然也就抓不到了。

 

  1、先把代理浏览器给启动起来

 

  进到Burp Suite里面以后,去打开代理功能下面的拦截标签,点一下那个打开浏览器的按钮,用它自带的这个浏览器去访问我们要测试的目标系统,这么做,能减少很多因为普通浏览器的代理设置、证书,还有缓存,所带来的干扰,要是你用的是自己平时用的那个外部浏览器,那就要去确认好,它的代理地址,是不是已经指向了Burp正在监听的那个端口,并且,那个HTTPS的证书,是不是也已经老老实实地装好了。

 

  2、去把跟WebSocket有关的那些业务动作给触发出来

 

  WebSocket这个消息,它往往不会在页面刚一打开的时候,就那么明显地往外蹦,你得在页面里面,去故意触发一下,像聊天、通知、实时刷新、在线状态、大家一起协同编辑,或者是行情的推送,这一类的动作,等操作完了以后,就进到【代理】下面的【WebSockets历史记录】这个标签页里面,去看看有没有新的记录出现,官方给的测试流程,也是先让你去浏览一下目标的功能,然后再跑到这个标签页里面,去看看那些已经被交换过的WebSocket消息。

 

  3、去看一看消息的方向和里面具体的内容

 

  在WebSocket的历史记录里面,一般是会把从客户端发往服务器,还有从服务器返回给客户端,这两种方向的消息给区分开的,在测试的时候,要去留意一下时间、连接的地址、消息的方向,还有它的内容,到底是文本的,还是二进制的,要是你想把某一条消息,拿出来再重放一遍,或者是修改一下,可以在它上面点右键,去选择发送到Repeater里面,这个时候,Burp就会给你生成一个对应的,专门用来重放WebSocket消息的标签页。

 

  4、要跟HTTP的历史记录配合起来,去看那个握手的过程

 

  在WebSocket连接真正建立起来之前,会有那么一次握手的请求,这个请求,通常你是可以在【HTTP历史记录】里面看到的,它就是那种带有升级标识的请求,要是连这个请求的影子都看不到,那就说明流量压根儿就没有从Burp这里经过;要是能看到握手请求,可后面却迟迟没有消息过来,那就要再回头去看看页面,是不是真的在持续地发送着WebSocket数据。

 

  二、WebSocket记录不显示该怎么处理

 

  当WebSocket的记录怎么都不显示的时候,不要就只会一个劲儿地在那刷新页面,要先判断清楚,到底是流量没走代理、还是说根本就没有真实的WebSocket连接,又或者是,记录其实已经抓到了,只是被某些条件给过滤掉、藏起来了。

 

  1、去检查一下过滤的条件

 

  进到【WebSockets历史记录】这个标签页以后,去点一下上面的那个过滤栏,把里面关于主机、状态、消息的类型,还有搜索的关键字,这些限制条件,先一股脑儿地都给清掉,Burp的官方文档里有说明过,WebSockets的历史记录,它支持用过滤窗口来筛选记录,要是你的过滤条件设得太窄了,那些消息就很有可能已经被抓到了,但是,却没有被显示出来。

  2、去确认一下,目标它是不是真的在用WebSocket

 

  有些页面,它看着像是在做实时通信,可实际上,背后用的技术,是轮询、SSE,或者是普通的HTTP接口,这个时候,你可以去浏览器自己的开发者工具里面,找到网络那一栏,去看一看,是不是真的有那种以ws或者wss开头的连接,如果目标压根儿就没有用到WebSocket,那Burp的WebSockets历史记录里面,自然也就会有东西显示出来。

 

  3、去检查一下代理和证书的配置

 

  如果目标用的是wss这种加密的连接,可你的HTTPS证书却没有配好,那浏览器就很可能会直接把连接给掐断掉,用Burp自带的那个浏览器来做测试,会省事很多;要是用外部的浏览器,那就得去确认清楚,代理的设置、证书的安装、系统的时间,还有浏览器本身的安全策略,都没有出什么岔子,要保证能正常地抓到HTTPS的请求了,再去看WebSocket的连接,这样才有意义。

 

  4、去看一看是不是被范围限制,或者是上游的代理给影响到了

 

  在项目里面,如果已经设置过范围的过滤、配置了外部的代理、给浏览器设过直连的规则,或者是系统级别的代理绕过规则,那就有可能,某些域名的流量,根本就没有进到Burp里面来,遇到这种情况,可以临时地把那些不必要的范围限制给关掉,重新再登一次系统,然后去触发一下业务的动作,再回到HTTP历史记录和WebSockets历史记录里面,看看这一次,记录是不是同步地出现了。

 

  三、WebSocket的排查顺序要怎么定

 

  在做WebSocket排查的时候,比较建议的顺序,是沿着“HTTP的请求能不能被顺利抓到、握手的动作到底有没有出现、消息是不是真的发出去了、记录有没有被什么东西给过滤掉”这么一条线,一步一步地往下走,不要一上来,就到处去改那一大堆的设置。

 

  1、先去抓一个普通的HTTP请求

 

  去访问一下目标网站的首页,然后看一看【HTTP历史记录】里面,有没有留下刚才访问的痕迹,要是连这个记录都没有,那就说明,代理这条最基础的链路,它都还没有通。

 

  2、再去找一找WebSocket的握手请求

 

  用目标站点的域名,还有升级请求这个关键字,去历史记录里面搜一搜,看看WebSocket的连接,到底有没有被建立起来,要是握手失败了,就得回头去看一下状态码、证书、跨域的限制,还有当前的登录状态。

 

  3、最后再去看消息的列表

 

  当握手已经存在了,可消息那一栏却是空着的时候,就要回到页面里面去,多去触发几次那种真实的业务动作,要是消息明明很多,可就是看不到你想要的那个目标内容,那就可以再用过滤栏,把域名、消息的方向,还有关键字,给收窄一下来查。

  总结

 

  关于BurpSuite的WebSocket消息要怎么去抓,还有记录不显示了又要怎么去处理,这里面最关键的一步,就是先要让目标的流量,完完整整地经过Burp,然后再跑到【代理】下面的【WebSockets历史记录】里面,去查看那些消息,当记录不显示的时候,也要优先去排查代理的设置、证书的安装、是不是真的有WebSocket的连接、过滤的条件,还有那些业务触发时的动作,只要握手和消息的这条链路,能够对得上号,那后面再去对它做修改、重放,还有分析的时候,才会有个牢靠的依据。

读者也访问过这里:
135 2431 0251