天天看點

【轉】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>​抓包分析和篡改資料,比較土,完.

繼續閱讀