Skip to Content

什麼是語言表達注射?

程式碼插入是一個關鍵弱點,允許第三方在伺服器端軟體上執行程式碼。表達式語言注入是一種遠端程式碼執行,會揭露伺服器的敏感資料。遠端程式碼會執行並顯示變數、密碼、函數或程式碼。最糟糕的是,它可以讓攻擊者遠端控制伺服器。

什麼是語言表達注射?

表達式語言注入是一種弱點,影響 JavaServer Pages(JSP)、Active Server Pages(ASP)和其他在網路伺服器上託管的表達式語言。這些語言是解譯語言,因此傳送至伺服器的任何程式碼都會在應用程式執行期間編譯,而不是標準編譯語言與二進位可執行檔案。當使用者要求頁面時,程式碼會以解譯語言在伺服器上編譯。

當運算式語言(EL)應用程式易受運算式語言插入的影響時,攻擊者會在查詢字串或表單物件中,將製作的程式碼作為輸入資料傳送至應用程式。程式碼會在執行階段編譯,接著程式碼會顯示變數、密碼和其他敏感資訊。EL 漏洞在過時的翻譯語言版本中很常見,因此傳統應用程式在部署到生產環境之前,應該先經過滲透測試。發生重大事件後,組織需要災害復原計畫,以修復資料揭露和利用。

Expression Language Injection 如何運作

任何執行解譯語言的應用程式都應從輸入中清除程式碼和特殊字元。在不刷洗輸入的情況下,應用程式將接受程式碼並在伺服器上執行。大多數的 EL 注入弱點都涉及 JSP,因此我們將在以下範例中使用 JSP 代碼。以下片段是易受 EL 注入影響的單行程式碼範例:

<spring:message code="${param['message']}" text=""/>

在本範例中,程式碼屬性會取得包含字串的參數。如果攻擊者將程式碼注入參數中,就會在伺服器上編譯並執行。使用者在本地網頁上看不到此程式碼,因此攻擊者使用一般指令碼來尋找 EL 注入弱點。

導致語言表達的常見弱點

與任何注入弱點相似,EL 注入弱點源自於伺服器應用程式未驗證輸入。使用與上述相同的範例,訊息字串可以是無害的字元字串,但也可以是程式碼。假設使用者傳送了下列內容,則不要傳送無害的字串:

${"aaaa".toString().concat(T(java.lang.Runtime).getRuntime().exec('ls -l'))}

以上輸入嘗試在伺服器上執行系統指令 “ls -l”。此命令會列出目前目錄中的檔案和目錄。有了檔案清單,攻擊者就可以嘗試傳送另一個命令,以開啟檔案內容並顯示至其視窗。檔案可能包含敏感資料,如密碼。攻擊者可能從該處存取伺服器,並執行其他惡意動作。

偵測表達語言注入

白盒式和黑盒式滲透測試皆能偵測 EL 注射的漏洞。白盒測試是一種安全專業人員審查漏洞代碼的方法。企業向安全審查人員提供代碼,審查人員在報告中找出所有代碼漏洞。這是一種常見的主動式資料保護方法。

黑盒子滲透測試使用與攻擊者相同的掃描和弱點偵測形式。資安專業人員在不了解程式碼的情況下攻擊應用程式,因此任何驗證或防禦機制都能被測試。灰色盒子測試是黑盒子和白盒子測試的組合,通常被選為滲透測試網路應用程式的方法。

預防語言表達

偵測 EL 注入攻擊的最佳方式是驗證代碼,並移除特定字元的輸入。例如,輸入名稱欄位不應包含 “<” or “>” 字元。開發人員應該使用內建的程式庫來偵測這些字元,並移除它們或捨棄輸入,並顯示錯誤給使用者。

其他字元也可能是惡意的。在 JSP 頁面中,程式碼片段以 “<%” characters and end with the “%>” 字元開頭。這些字元應一併從輸入中移除。攻擊者會執行各種惡意程式碼組合來繞過偵測,因此偵測惡意程式的最佳方式是使用專為輸入驗證所建立的程式庫。SIEM 應用程式也可以偵測入侵,並在應用程式成為目標時進行分析。

結論

EL 注入弱點應被視為重大安全性問題。永遠要對您的翻譯語言應用程式進行插入漏洞測試,以及其他任何可能揭露敏感資料的內容。開發人員應使用驗證工具來偵測並停止 EL 注入,而使用 JSP 和 ASP 傳統應用程式應密切監控攻擊。

Pure Storage 具備安全基礎架構威脅監控功能,可保護您的應用程式免受安全攻擊。

03/2025
Automating Distribution Centers with All-Flash
Discover why Carozzi chose Pure Storage to meet the data demands of automating its distribution center with automated guided vehicles.
客戶案例研究
3 頁
聯繫我們
聯絡Pure訊息 標誌
聊天標誌
問題或建議

如對Pure的產品或認證,有任何的疑問或建議,歡迎與我們聯繫!

關鍵標誌
預約試用

預約現場示範,親眼看看 Pure 如何幫助您將資料轉化為強大的成果。 

聯絡我們:886-2-3725-7989

媒體:pr@purestorage.com

 

Pure Storage總部

34F, Taipei Nanshan Plaza,

No. 100, Songren Road,

Xinyi District,

Taipei City 110016

Taiwan (R.O.C.)

800-379-7873 (一般資訊)

info@purestorage.com

關閉
關閉關閉 X 標誌
您的瀏覽器已不受支援!

較舊版的瀏覽器通常存在安全風險。為讓您使用我們網站時得到最佳體驗,請更新為這些最新瀏覽器其中一個。