Electron流行開源框架存在XSS漏洞 github wordpress等均受影響

IT168GB發表於2018-05-17

  Electron 是一個由node.js,V8和Chromium構成的開源框架,該框架已被廣泛用於流程的桌面應用程式,包括Github桌面,WordPress等;研究員發現透過錯誤配置,將允許惡意應用程式訪問Node.js API和模組並濫用更多作業系統功能。

  安全專家發現了Electron 軟體框架中的一個漏洞,該漏洞 已被用於構建大量流行的桌面應用程式。 流行的桌面應用程式(包括Skype,Slack,GitHub桌面,Twitch,WordPress.com等)可能受到影響。

  Electron框架 是由node.js,V8和Chromium構成的開源框架

  Electron是一個node.js,V8和Chromium開源框架,允許開發人員使用JavaScript,HTML和CSS等Web技術來構建桌面應用程式。 在構建基於Electron框架的應用程式時,開發人員可以選擇Electron API或Node.js API及其模組。 Node.js API和內建模組為開發人員提供了與更廣泛的整合,並允許訪問更多的作業系統功能。

  為了防止濫用作業系統功能,Electron團隊建立了一種機制,可以防止基於其框架的應用程式受到攻擊。

  “電子應用程式本質上就是網路應用程式,這意味著它們很容易受到跨站點指令碼攻擊,因為未能正確清理使用者提供的輸入。預設的Electron應用程式不僅包括訪問其自己的API,還包括訪問所有Node.js的 內建 模組。“讀取 Trustwave釋出 的分析。“這使得XSS特別危險,因為攻擊者的有效載荷可以允許 執行 一些令人討厭的事情,比如在child_process 模組中需要並在客戶端執行系統命令。”

  Election框架 設定 webviewTag:false”選項 可造成XSS漏洞

  在桌面上執行HTML和JS程式碼的應用預設情況下啟用了“nodeIntegration:false”選項,這意味著預設情況下禁用對Node.js API和模組的訪問。

  該網頁檢視標籤 功能允許開發嵌入內容,如網頁,為電子應用程式並執行它作為一個單獨的程式。

  透過分析:

  使用WebView時,您還可以傳入許多屬性,包括 nodeIntegration 。 WebView容器預設情況下沒有啟用nodeIntegration。

  當webPreferences配置檔案中的webviewTag設定為false時,nodeIngration也設定為false,但是,如果開發人員不宣告webviewTag,那麼Electron應用程式會將nodeIntegration設定為false。

  研究員Brendan Scarvell發現可以將nodeIntegration選項設定為“true”,將允許惡意應用程式訪問Node.js API和模組並濫用更多作業系統功能。

  Scarvell解釋說,如果基於Electron的應用程式的開發人員沒有在webPreferences配置檔案中專門設定“webviewTag:false”選項,則攻擊者可以利用應用程式內部的跨站點指令碼(XSS)漏洞建立新的WebView元件視窗來更改設定並將nodeIngration標誌設定為“true”。

Electron流行開源框架存漏洞

  XSS(跨站指令碼攻擊)漏洞解決辦法

  該專家釋出了POC,攻擊者可以利用這些程式碼來利用任何XSS漏洞並訪問底層作業系統。

  “如果發現 禁用 了 nodeIntegration 選項 的Electron應用程式,並且該應用程式 透過對使用者輸入進行糟糕的清理或應用程式的其他依賴項存在漏洞而包含XSS漏洞,則上述概念驗證可以允許遠端執行程式碼該應用程式正在使用易受攻擊的Electron版本(版本<1.7.13,<1.8.4或<2.0.0-beta.3),並且尚未 手動 選擇以下選項之一:

  ●webviewTag: false 在 其 webPreferences中 宣告 。

  ●在其 webPreferences中 啟用nativeWindowOption選項 。

  ●攔截新視窗事件和覆蓋事件。 newGuest 沒有使用提供的選項標籤。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31510736/viewspace-2154593/,如需轉載,請註明出處,否則將追究法律責任。

相關文章