Struts 2.0.0 – Struts Struts 2.3.24.1 漏洞解決辦法

背景介紹:   

Struts2 是全球使用最普遍的 Java web 服務端框架之一。Struts2 是 Struts 的下一代產品,是在 Struts1 和 WebWork 的技術基礎上進行了合併的全新的 Struts2 框架。html

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

漏洞成因:    

Struts2的標籤庫使用OGNL[Object-Graph Navigation Language,一種功能強大的表達式語言]表達式來訪問ActionContext中的對象數據。爲了可以訪問到ActionContext中的變量,Struts2將ActionContext設置爲OGNL的上下文,並將OGNL的跟對象加入ActionContext中。json

在Struts2中,以下的標籤就調用了OGNL進行取值。安全

<p>parameters: <s:property value="#parameters.msg" /></p>  框架

Struts2會解析value中的值,並看成OGNL表達式進行執行,獲取到parameters對象的msg屬性。S2-029仍然是依靠OGNL進行遠程代碼執行。

若是使用Struts2的web應用將用戶提交的數據未通過濾,直接經過Struts2的標籤設置成屬性值,就會被Struts2執行

受影響的Struts 2版本:

Struts 2.0.0 – Struts Struts 2.3.24.1工具

修復建議:

1:當重分配傳入Struts標籤屬性的參數時,老是進行驗證測試

2:建議用戶將Struts升級至 2.3.26版本。網站

--- 引自http://sanwen8.cn/p/1f7AJID.htmlspa

解決辦法:升級到2.3.29,更新xwork-core-2.3.29.jar;struts2-core-2.3.29.jar;struts2-json-plugin-2.3.29.jar;ognl-3.0.17.jar;freemarker-2.3.22.jarhtm

測試工具及struts升級包地址:http://pan.baidu.com/s/1slah6XZ

相關文章
相關標籤/搜索