成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開發人員請注意!使用Websockets可能會被竊取秘密

新聞 前端
一群從事絕密項目而不自知的JavaScript開發人員,該用什么樣的方法來提取他們的代碼呢?本文的故事就是關于這個的。這些技術之所以有效,是因為瀏覽器在不需要多重防護的條件下就允許公共來源的websockets打開本地主機的websockets連接。

 [[330889]]

圖源:unsplash

一群從事絕密項目而不自知的JavaScript開發人員,該用什么樣的方法來提取他們的代碼呢?本文的故事就是關于這個的。這些技術之所以有效,是因為瀏覽器在不需要多重防護的條件下就允許公共來源的websockets打開本地主機的websockets連接。

這讓筆者產生了一些思考。筆者知道流行的JavaScript框架在開發中使用websockets,以在內容更改時自動重新加載頁面。一個惡意的網站能不能竊聽到這些流量,并找出開發人員在何時保存下的代碼?

事實比想象的還要糟糕。

計劃如下:

· 進行一些設置,或是將廣告惡意軟件注入前端開發人員經常訪問的熱門網站。比如說 
http://frontend-overflowstack.com/

· 在此頁上,添加嘗試打開到公共端口的websockets連接的代碼(掃描10k端口大致需要一秒鐘,因此可以在這里輕松實現此功能)

· 如果頁面成功打開連接,請保持打開狀態,并將收到的所有消息轉發到自己的秘密數據庫。

計劃生效了嗎?

一個非常簡單的頁面就能驗證:http://frontend overflowstack.com/。加載時,它會嘗試將websocket連接到訪客計算機上2000到10000之間的每個端口(除了Firefox不允許的幾個端口)。

如果某個端口連接,它將偵聽該端口輸出接收到的任何消息。此頁不會保存或傳輸任何捕獲的數據,僅在屏幕上臨時顯示。如果此頁上出現任何輸出,則實際惡意站點可以很容易地將該輸出發送到其所需的任何服務器。

生成數據

為了測試這個概念,我需要一個簡單的使用熱加載的web服務器:

  1. var express =require('express'
  2.                               var http =require('http'
  3.                               var path =require('path'
  4.                               var reload =require('reload'); 
  5.              var app = express() 
  6.                                 app.get('/', function (req, res) { 
  7.                                 res.sendFile(path.join(__dirname, 'public''test.html')); 
  8.                               }) 
  9.     var server = http.createServer(app) 
  10.                                reload(app).then(function(reloadReturned) { 
  11.                                 server.listen(3000, function () {}); 
  12.                                 setInterval(reloadReturned.reload, 5000); 
  13.                               }); 

當運行時,它會啟動端口3000上的服務器,端口9856上的websocket服務器,并發送一條消息:每5秒重新加載(reload )鏈接所有websocket的客戶端。如果啟動嗅探器站點,將顯示以下內容:

開發人員請注意!使用Websockets可能會被竊取秘密

因此,前端overflowstack.com可直接竊聽重載消息,這些消息從本地開發服務器發送到本地瀏覽器。在這個階段,我們可以坐下來數一數每個訪問我們網站的人對本地JavaScript代碼進行了多少次更改。

但是,可以用這種方式來獲取更多信息嗎?

情節更復雜了

目前大多數的前端開發似乎都會使用React,通常這涉及到運行webpack dev服務器,其中包括它自己的,以及更繁多的web socket接口。該服務器通過其websocket可共享更多數據,只是更有趣些:

  1. $ npxcreate-react-app test 
  2. $ cd test/ 
  3. $ npm start 

運行這些代碼之后,再來看看我們的惡意網站:

開發人員請注意!使用Websockets可能會被竊取秘密

馬上就會有更多的數據顯示出來,得到散列式和狀態式的消息,以及所有無用的信息。當開發人員輸入錯誤時,會發生什么?webpack dev服務器通過其websocket連接,嘗試將一堆調試和堆棧信息發送到開發人員的屏幕上。這些信息在惡意網站也能看到:

開發人員請注意!使用Websockets可能會被竊取秘密

現在,我們有了代碼片段、文件路徑、位置等各種有用的信息。甚至當開發人員最終意外地在包含有用數據的代碼行上鍵入錯誤時,得到的結果會更好:

開發人員請注意!使用Websockets可能會被竊取秘密

現在你可獲得一份開發人員的AWS開發人員證書副本。

沒有圖表,任何技術設計都是不完整的。這里展示了圖像化的代碼運行:

開發人員請注意!使用Websockets可能會被竊取秘密

為了簡化圖表,此處省略了正在運行的本地web服務器,并假設websocket服務器直接來自于編輯器中。

某些瀏覽器選項卡上的惡意網頁會自動連接到用戶計算機上打開的WebSocket。當敏感數據通過該套接口發送時(從希望通過僅本地通道進行通信的進程發送),網站可以接收該消息數據,并將其轉發到任何外部數據庫。

限制因素

值得注意的是,該攻擊向量很小。必須誘使不知情的用戶訪問網站,并在他們開發JS代碼時繼續使用它。然后,必須等待在較為幸運的情況下從他們的編碼錯誤中收集一些數據,這也許有助于找到從這些數據中獲利的突破口。

[[330890]]

圖源:unsplash

綜合考慮

然而,許多網站已經在使用websocket端口掃描技術,而沒有太多開發人員能意識到這一點。考慮到JS工具傾向于使用那些眾所周知的端口的小部分,編寫一個腳本來巧妙地過濾react Dev通信量并不是特別困難。

想象一下,一個為Twitbook工作的內部開發人員只需在其編輯器中按save鍵,就會導致訪問令牌或內部服務器地址被泄露給錯誤的訪問者。

這有點嚇人,正常開發人員通常會希望在他們選擇的代碼編輯器中按下save鍵時,是不會將數據泄漏到第三方web服務的。而這增加了這種風險,足以讓人有點擔心。

補救

筆者的建議是這種嘗試攔截JavaScript熱加載機制的方法,它是筆者所熟悉的websockets的唯一通用方法。Discord也使用websockets,但匆匆一瞥并不會產生任何明顯的效果,因為該通道以公共互聯網為設計目標。

令人擔憂的是,僅僅這一個用于重新加載的單向通信簡單用例,就將如此多的潛在信息暴露給了那些惡意網站。websockets的其他用途(對于不是為公共互聯網設計的數據)也可能受到類似的威脅。

[[330891]]

圖源:unsplash

爭論在于,webpack dev服務器應該進行一些身份驗證,或者使用備用的瀏覽器通信通道進行熱重載。瀏覽器/web標準為websockets實現源代碼策略的方式無疑令人驚訝。導致那些專為本地開發而設計的軟件以一種難以預料的方式暴露在公共互聯網上。

很期待針對瀏覽器中額外控制功能部分的修復。

責任編輯:張燕妮 來源: 今日頭條
相關推薦

2017-07-27 14:20:36

開發應用程序代碼

2015-07-09 15:35:22

開發人員開源技術熱點

2022-08-22 07:08:12

敏捷開發軟件

2022-03-03 23:30:27

TypeScrip開發前端

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企業開發人員提供商

2025-04-16 07:02:00

大型語言模型LLM惡意代碼

2009-11-23 20:07:51

ibmdw開發

2021-02-19 09:33:01

kubernetesJAVA服務

2009-12-11 14:50:14

Visual Basi

2023-10-13 18:10:14

編程語言Rust

2018-07-09 14:05:16

編程語言PythonPipenv

2019-06-03 14:20:30

Java數據庫大數據工具

2021-12-14 22:31:59

機器學習人工智能開發

2009-05-31 08:31:07

GoogleWaveTechCrunch

2023-08-14 15:23:37

2011-09-05 14:21:29

webOS

2013-04-15 10:00:09

程序員

2022-12-19 07:33:49

開發人員谷歌制度

2010-08-09 16:09:25

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄视频国产| 亚洲最新在线 | 激情视频网站 | 在线一区视频 | 免费a网| 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 国产激情视频在线 | 成人免费一级 | 中文字幕人成乱码在线观看 | 婷婷综合久久 | 国产精品久久国产精品 | 国产在线视频一区二区 | 成人一区av偷拍 | 中国美女撒尿txxxxx视频 | 毛片a级| 91久久久精品国产一区二区蜜臀 | 久久最新 | 日本亚洲精品 | 一级在线 | 日韩一区二区三区视频 | 亚洲一区二区中文字幕在线观看 | 亚洲福利在线观看 | 国产精品视频一区二区三区四区国 | 91看片网站| 91p在线观看 | 涩涩导航 | 不卡一二三区 | 在线播放国产一区二区三区 | 久久久久国 | 欧美精品一区二区在线观看 | caoporn地址 | 国产日韩欧美一区 | 久久99精品久久久久久国产越南 | 欧美一级片在线观看 | 秋霞在线一区 | 欧美中文字幕在线观看 | 天堂久久网 | 日韩电影中文字幕 | 三级在线视频 | 国产一区二区在线观看视频 | 久久只有精品 |