记录一下用<code>Fiddler</code>对<code>WebSocket</code>收发的数据进行抓包分析和篡改数据,只找到这么一个方法,能用就行吧。 时间:2019-3-29 环境: <code>win7</code> <code>+</code> <code>Fiddler 5.0</code>
<code>Fiddler</code>中双击<code>WebSocket Session</code>即可查看此连接收发的数据。可惜此选项卡内没有带发送数据的功能(一个输入框(HEX文本) + 一个按钮),要是有就基本完美了。

如果需要抓取<code>https</code>、<code>wss</code>请求,需要在<code>Fiddler</code>菜单<code>Tools</code> <code>></code> <code>Options</code> <code>></code> <code>HTTPS</code> 中开启<code>HTTPS</code>支持。在<code>Actions</code>菜单中,设置电脑系统信任<code>Fiddler</code>的根证书。
如果需要抓取手机中的数据,需要在<code>Tools</code> <code>></code> <code>Options</code> <code>></code> <code>Connections</code>中设置允许客户端连接,然后在手机<code>wifi</code>连接中设置使用电脑的<code>ip</code>和<code>Fiddler监听的端口</code>作为代理。
然后手机浏览器访问电脑<code>ip</code> <code>+</code> <code>端口</code> 进入<code>Fiddler</code>页面下载根证书,并信任(安装)此证书。
完成以上操作才有可能监控<code>https</code>和<code>wss</code>请求,大部分是能监控的。
在<code>Fiddler</code>界面中并未找到修改<code>WebSocket</code>数据的地方,搜索也没找到多少直接的资料信息,不过写怎么打印<code>WebSocket</code>数据日志的倒蛮多(<code>Fiddler 4.5</code>开始已没有这个必要了)。另外看到一篇<code>利用fiddler core api 拦截修改 websocket 数据</code>的。两个综合一下就大功告成了。
在<code>Fiddler</code>菜单<code>Rules</code> <code>></code> <code>Customize Rules</code>中实现<code>Handlers</code>类的<code>OnWebSocketMessage</code>方法,此方法可以得到<code>WebSocket</code>收发的数据,而且可以修改。另:<code>Fildder</code>主界面中<code>FildderScript</code>也可以直接修改脚本代码。
<code>Fiddler</code>采用的<code>JScript.Net</code>语法,这个语法不熟?没关系,我也不熟,但对<code>JavaScript</code>和<code>C#</code>任意一个熟就行了。
<code>Classic ASP</code> 用户可能对<code>JScript</code>和它的好基友<code>VBScript</code>比较熟,这两个除了写<code>ASP</code>外,<code>Windows</code>上的<code>vbs</code> <code>js</code>脚本代码也是主力使用方向。
简单点,把<code>JScript</code>当做<code>IE 6</code>来写就ojbk了,绝对的原味,反正下面的例子里面<code>js</code>代码居多。参考文章结尾的测试代码,不要在意那些拼音或者缩写的奇丑变量名。
测试完整代码在文章结尾。
发送<code>echo</code>测试数据<code>test edit:ddd</code>,结果截图:
Log中已打印我们的修改日志信息,可以看到<code>echo</code>响应中完全包含了被修改后的发送数据,我特意用不同颜色标记了一下。
<code>Fiddler</code>自己的<code>WebSocket</code>记录信息,它记录的为我们修改之后的。
没找到方法,不知道怎么用<code>Fiddler</code>来发送<code>WebSocket</code>数据,参考第一节中的遗憾。
只找到这么一个方法对<code>WebSocket</code>抓包分析和篡改数据,比较土,完.