返回頂部
隱藏或顯示

新聞動態

News

深信服,讓IT更簡單、更安全、更有價值

Apache Struts2 再曝高危漏洞,深信服助您進行本地檢測

/ 2016-03-20

近日,Apache Struts2 發布的最新安全公告S2-029中顯示,Struts2 存在遠程代碼執行漏洞。Struts 2.0.0 – Struts2.3.24.1 版本均受到該漏洞影響。這個漏洞危險級別被定義為高危,漏洞 CVE 編號:CVE-2016-0785。目前,深信服提供了Apache Struts2 S2-029 遠程代碼執行漏洞的本地檢測方案。



背景介紹
Struts2 是全球使用最廣泛的 Javaweb 服務器框架之一。Struts2 是 Struts 的下一代產品,是在 struts1和 WebWork 的技術基礎上進行了合并的全新的 Struts2 框架。

之前 S2-005,S2-009,S2-013,S2-016,S2-20 都存在遠程命令執行漏洞,使得大量的網站系統遭受入侵。因此,該漏洞一經曝光就在安全圈內引起軒然大波。

漏洞概要

S2-029 漏洞產生原因主要在于,Struts2的標簽庫使用 OGNL 表達式來訪問 ActionContext 中的對象數據,為了能夠訪問到ActionContext 中的變量,Struts2 將 ActionContext 設置為 OGNL 的上下文,并將 OGNL 的根對象加入 ActionContext 中。


用戶可以控制特定標簽的屬性,通過 OGNL 二次計算可以執行任意命令。例如:<p> parameters: <s:propertyvalue="#parameters.msg" /> </p> 

這個標簽就調用了 OGNL 進行取值,Struts2 會解析 value 中的值,并當作 OGNL 表達式進行執行。


OGNL第一次計算:
OGNL表達式為 #parameters.msg,計算后得到 parameters的屬性,并將其屬性值賦值給 value。
OGNL第二次計算:
對上面獲取的屬性值繼續做 OGNL表達式執行。

漏洞檢測

深信服提供了Apache Struts2 S2-029 遠程代碼執行漏洞的本地檢測方案:

1、新建文件test.jsp,文件內容如下圖所示:


2、將上述test.jsp文件放入網站根目錄;
3、打開瀏覽器訪問文件test.jsp,例如:http://www.xxx.com/test.jsp;
4、查看網站服務器 /tmp 目錄下是否有sangfor_test文件生成,若有此文件生成,則證明網站存在Apache Struts2 S2-029 遠程代碼執行漏洞。

該檢測方案已在深信服下一代防火墻主頁進行實時提醒,如果您未購買下一代防火墻設備,請訪問深信服安全中心獲取檢測工具:http://sec.sangfor.com.cn/vulns/287.html

修復建議

1、建議用戶嚴格驗證新添加的 Struts 標簽參數的屬性;

2、建議用戶將Struts升級至 2.3.26版本;
3、對于暫時無法進行升級的低版本用戶,建議修改系統 RestActionMapper.java 源文件,防止 OGNL 表達式多次執行,具體修改方法如下圖:


點擊以下鏈接,即可訪問深信服安全中心獲取檢測工具:

http://sec.sangfor.com.cn/vulns/287.html




©2000-2018    深信服科技股份有限公司    版權所有     粵ICP備08126214號-5

粵公網安備

粵公網安備44030502002384號

一本道在线综合久久88