天天看点

【转】Fiddler抓包和修改WebSocket数据,支持wss

记录一下用​<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文本) + 一个按钮),要是有就基本完美了。

【转】Fiddler抓包和修改WebSocket数据,支持wss

如果需要抓取​<code>​https​</code>​、​<code>​wss​</code>​请求,需要在​<code>​Fiddler​</code>​菜单​<code>​Tools​</code>​ ​<code>​&gt;​</code>​ ​<code>​Options​</code>​ ​<code>​&gt;​</code>​ ​<code>​HTTPS​</code>​ 中开启​<code>​HTTPS​</code>​支持。在​<code>​Actions​</code>​菜单中,设置电脑系统信任​<code>​Fiddler​</code>​的根证书。

如果需要抓取手机中的数据,需要在​<code>​Tools​</code>​ ​<code>​&gt;​</code>​ ​<code>​Options​</code>​ ​<code>​&gt;​</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>​&gt;​</code>​ ​<code>​Customize Rules​</code>​中实现​<code>​Handlers​</code>​类的​<code>​OnWebSocketMessage​</code>​方法,此方法可以得到​<code>​WebSocket​</code>​收发的数据,而且可以修改。另:​<code>​Fildder​</code>​主界面中​<code>​FildderScript​</code>​也可以直接修改脚本代码。

【转】Fiddler抓包和修改WebSocket数据,支持wss

​<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>​,结果截图:

【转】Fiddler抓包和修改WebSocket数据,支持wss

Log中已打印我们的修改日志信息,可以看到​<code>​echo​</code>​响应中完全包含了被修改后的发送数据,我特意用不同颜色标记了一下。

【转】Fiddler抓包和修改WebSocket数据,支持wss

​<code>​Fiddler​</code>​自己的​<code>​WebSocket​</code>​记录信息,它记录的为我们修改之后的。

没找到方法,不知道怎么用​<code>​Fiddler​</code>​来发送​<code>​WebSocket​</code>​数据,参考第一节中的遗憾。

只找到这么一个方法对​<code>​WebSocket​</code>​抓包分析和篡改数据,比较土,完.

继续阅读