171289691 发表于 2020-4-1 10:56:19

使用Chrome或Fiddler抓取WebSocket包(转载)

首先,HTTP是建立在TCP协议基础上的,而WebSocket通常也是建立在TCP上,所以说为什么有些网页游戏抓不到包而有些又可以,这仅是因为你使用的抓包工具是针对了HTTP的通信协议。

我先从抽象的层面,举一个可能不太恰当的例子,只为了让不明白HTTP和WebSocket两者之间抓包有何区别的同学大概了解这两个协议的异同。客户端/服务端用C/S简称,我把数据抽象成水流,而HTTP是用水枪传递水流的(无状态),至于WEBSOCKET则是使用水管传递水流(实时)。

HTTP通讯方式:

客户端C把数据封装好了要交给服务端S,所以把水放到水枪里面,射过去给S
S用桶把水挡下来了,然后分析水的成分(数据内容),完成后再把新的水(返回的数据)射回去给C
这个过程中,任何人都可以随时在C和S之间用海绵吸一点水然后拿去分析(嗅探数据),或者是直接用桶把水都挡下来分析完后再装到水枪中,模仿C的动作射给S(也就是代理抓包)
WEBSOCKET方式:

客户端C和服务端S,双方之间先用一条水管连起来(用的是HTTP握手),然后水流都通过这个小水管来传输
水管里面一直有水在流动,所以要通讯只需要C或者是S把数据水流放到水管中,则会立刻传输到对方那边
这个过程中,要嗅探就比较麻烦了,需要先在水管中先打个洞,然后再把分析器放进去、或者是斩断这个水管在中间接个水表之类的设备去分析水质成分
好了,乱说一通完毕,说一下抓取WebSocket的两个工具,都是常见的程序,只是可能很多同学不清楚有这样的功能而已。

第一个:Chrome,也就是谷歌的浏览器

**** Hidden Message *****
第二个:Fiddler,抓包调试的利器,已经人手一个了吧
**** Hidden Message *****,看到WebSocket的数据包
到了这里,还有一个情况要说明,就算是有工具可以抓到WebSocket中的包,看到的也不一定是明文。这个要看传输的水是什么,如果是普通水那谁都可以分析;但如果是水银,那这个分析水的设备很可能就显示乱码了。 所以也就有同学明明使用了可以抓WebSocket包的程序,却抓出来的是乱码。那是因为别人传输的是二进制数据流(比如AMF包),而不是JSON之类的对人类可读的明文。

飘雪 发表于 2020-4-11 01:15:35

我还没用               

fuhao520 发表于 2020-4-4 16:55:04

问我我我我我我我了解到不耐烦就卡的百废待举 家电脑发链接你爹了

dmyiygml 发表于 2024-4-22 00:17:24


      分享是一种美德!

揰掵佲 发表于 2020-4-3 08:14:50

{:5_125:}不错不错支持了

zclee 发表于 2020-4-3 08:31:02

感谢分享,学习了!

BX5200 发表于 2020-4-3 09:15:03

感谢分享,学习下

30291011 发表于 2020-4-3 21:25:35

使用Chrome或Fiddler抓取WebSocket包

qq1320840206 发表于 2020-4-3 23:52:57

66666666666666

归零 发表于 2020-4-4 09:31:10

谢谢分享,学习一下了

yuhan 发表于 2020-4-4 09:50:41

谢谢分享!!!

stcren 发表于 2020-4-4 19:41:32

纠结好久了。
页: [1] 2 3 4 5
查看完整版本: 使用Chrome或Fiddler抓取WebSocket包(转载)