1. 程式人生 > >通過jQuery檔案上傳,數以千計的應用程式易受RCE攻擊

通過jQuery檔案上傳,數以千計的應用程式易受RCE攻擊

由於Apache的安全性變化,該漏洞已經存在了八年。

Blueimp廣泛使用的一個名為jQuery File Upload的外掛包含一個多年前的漏洞,可能會使7,800個不同的軟體應用程式面臨危險和遠端程式碼執行(RCE)的風險。

jQuery File Upload是一個使用者貢獻的開源軟體包,面向軟體開發人員,將自身描述為“檔案上傳小部件,具有多個檔案選擇,拖放支援,進度條,驗證和預覽影象以及音訊和視訊對於jQuery。“它適用於支援標準HTML表單檔案上傳的任何伺服器端平臺,例如PHP,Python,Ruby on Rails,Java和Node.js.

Akamai安全情報響應小組(SIRT)研究員Larry Cashdollar仔細研究了包中的兩個PHP檔案 - Upload.php和UploadHandler.php - 在程式碼中的目錄server / php路徑下,發現了一個明顯的漏洞。

“Upload.php檔案呼叫所有檔案上傳程式碼所在的主檔案UploadHandler.php,”他在上週的一篇帖子中解釋道。 “我還看到所有檔案都上傳到了Web伺服器根路徑中的files /目錄。我用curl寫了一個快速的命令列測試,一個簡單的PHP shell檔案確認我可以上傳一個web shell並在伺服器上執行命令。“

Cashdollar告訴Threatpost,問題不僅是檔案上傳到Web伺服器的路徑,而且攻擊者不需要任何形式的身份驗證來上傳檔案。

“我們不會檢查這些檔案是否可以在伺服器上執行,”他告訴我們。 “一旦攻擊者上傳了可以由伺服器執行的PHP或其他檔案,他們就可以使用Web伺服器的許可權在該伺服器上執行命令 - 通常是'www-data'。這開啟了一系列攻擊。“

例如,攻擊者可以上傳PHP shell,讓他或她訪問系統,以便安裝惡意軟體,從網站上洩露資料,使用shell轉移到網路的其他部分(取決於伺服器的位置)託管),破壞網站,使用網站作為僵屍網路的命令和控制(C2)伺服器,等等。

在他通知jQuery檔案上傳作者Sebastian Tschan的問題後,發現該漏洞(CVE-2018-9206)是在Blueimp的Web伺服器Apache禁用了一個安全控制元件時使用的,該控制元件是該小部件用於其根目錄的檔案訪問控制。從Apache 2.3.9開始,消除了對.htaccess檔案的預設支援,保留了不受保護的任何使用該功能的程式碼對資料夾訪問施加限制 - 包括jQuery檔案上載。

“Blueimp的程式碼依賴.htaccess控制元件來防止惡意檔案在伺服器上上傳和執行,”Cashdollar告訴我們。 “預設情況下,在Apache 2.3.9版本中刪除了此控制元件。因此.htaccess檔案被忽略,使得軟體在沒有安全控制的情況下開放利用。作者(Blueimp)並未意識到Apache預設配置中的這種變化(我也是)。“

Apache 2.3.9於2010年首次推出 - 意味著該缺陷已經存在了十年的大部分時間。對手也對此有所瞭解,YouTube上的大量視訊展示瞭如何利用這個問題。然而,不知何故,這個漏洞一直沒有被研究人員所關注。

更大的問題是jQuery檔案上傳程式碼生產包中使用的程式碼叉和變體 - 根據Cashdollar的說法,其中約有7,800個 - 也容易受到檔案上傳和程式碼執行的影響。這反過來會將應用程式開啟,直至資料洩露或惡意軟體。

Cashdollar說:“這些程式碼叉中的大部分將原始漏洞帶入其程式碼中。” “在某些情況下,即使在專案作者更改了原始的Blueimp程式碼以適應他們自己的專案之後,該漏洞仍然存在,每個專案都可以通過我的概念驗證示例的細微變化來利用。”

Blueimp已經在最新版本的軟體中糾正了這個問題,預設情況下只允許上傳影象檔案,例如檔案型別GIF,JPG,JPEG和PNG。但是,使用Blueimp程式碼庫的專案必須釋出自己的修復程式。

“除非這些專案的作者修改程式碼或不依賴.htaccess進行安全保護,否則它們也是脆弱的,”Cashdollar說。

 

訊息來源:threatpost