標籤:
YS web socket存在橫向越權漏洞,目前使用者可任意查看其他使用者的警示資訊,可導致敏感資訊洩漏【高】
問題描述:
YS使用定時輪詢web socket的方式擷取使用者裝置的警示資訊(比如警示圖片),在用戶端向伺服器發送輪詢請求期間,若發生裝置警示,則將警示資訊將即時推送到用戶端進行顯示,但在此過程中,要查詢的裝置是通過和使用者名稱綁定的,也就是說綁定指定的使用者名稱,伺服器就返回該使用者對應的裝置的警示資訊,而不是當前登入使用者的警示資訊。
測試步驟:
1、 開啟burp攔截代理,並啟動http請求攔截功能。
2、 使用正常帳戶登入YS(假設當前登入使用者名稱為ouyy),並攔截如下web socket請求,將當前登入賬戶使用者名稱改成其它某個存在的使用者的使用者名稱,:
3、 取消burp的http攔截功能,用戶端將定時向伺服器發送輪詢請求,此時去觸發hikwpf這個賬戶對應的裝置進行警示,可以捕獲到其警示資訊,:
4、 在返回的資訊中可以看到警示圖片的URL,在瀏覽器地址欄中輸入該URL,就可以看到hikwpf使用者的裝置的警示圖片,:
備忘:如果使用者開啟了安全模式,那麼通過該URL訪問的映像就是加密的,因此無法查看映像的內容。
問題擴充:
從目前情況來看,webSocket模組和web後台是完全獨立的,即webSocket不記錄使用者登入後session的狀態,也就是說擷取web socket session的請求和發送輪詢的請求是不需要帶上使用者登入後的cookie的,因此,驗證該問題實際上是不需要一個能合法登入的賬戶的。
解決建議:
1、 webSocket模組與web後台向結合,發送輪詢請求時要攜帶當前登入使用者認證後的cookie,通過cookie來控制警示資訊應該發給誰。
總結:進入到物聯網行業,保護使用者隱私是非常重要的,而如何去保護使用者隱私需要思考很多,此例子就是一個造成使用者隱私泄露的典型例子。
YS web socket存在橫向越權漏洞,目前使用者可任意查看其他使用者的警示資訊,可導致敏感資訊洩漏【高】