Struts2漏洞拉響網站安全紅色警報以及把Struts2更新爲最新版本Struts2.3.15.1步驟

360網站安全檢測平臺今日發佈紅色警報稱,普遍應用在國內大型網站系統的Struts2框架正在遭到黑客猛烈攻擊。利用Struts2「命令執行漏洞」,黑客可輕易得到網站服務器ROOT權限、執行任意命令,從而竊取重要數據或篡改網頁,目前國內至少有3500家網站存在該高危漏洞。據烏雲漏洞平臺顯示,運營商及金融等領域大批網站,甚至包括政府網站均受Struts2漏洞影響。java

360網站安全檢測服務網址:http://webscan.360.cn
Struts框架官方最新版本:http://struts.apache.org/download.cgi#struts234web

Struts2「命令執行漏洞」早在2010年已經曝光,但當時沒有公開的漏洞利用工具,所以並未形成過多危害。直到近期,針對該漏洞新的攻擊代碼在網上公開,漏洞利用工具也隨之涌現,使黑客攻擊徹底沒有門檻,80%以上應用Struts2框架的網站所以面臨嚴重風險。apache

經360網站安全檢測平臺分析,Apache Struts2中WebWork框架使用XWork基於HTTP參數名執行操做和調用,將每一個HTTP參數名處理爲OGNL(對象圖形導航語言)語句。爲了防範攻擊者經過HTTP參數調用任意方式,XWork使用瞭如下兩個變量保護方式的執行:json

- OgnlContext的屬性xwork.MethodAccessor.denyMethodExecution(默認設置爲true) 
-SecurityMemberAccess私有字段allowStaticMethodAccess(默認設置爲false)安全

爲了防範篡改服務器端對象,XWork的ParametersInterceptor不容許參數名中出現「#」字符,但若是使用了Java的unicode字符串表示\u0023,攻擊者就能夠繞過保護,修改保護Java方式執行的值。進一步可調用java語句來執行任意命令,甚至控制操做系統。服務器

以前Struts2官方補丁屏蔽了黑客經過\u0023 (16進制的#) 攻擊的方式,但黑客仍能夠利用\43(8進制的#)實施突破。框架

鑑於Struts2「命令執行漏洞」影響網站衆多,且危害巨大,360網站安全檢測平臺已緊急更新漏洞庫,並向存在漏洞的註冊網站發送示警郵件,同時建議全部使用Struts2框架的用戶當即升級至官方最新版本,並按期使用360網站安全檢測服務隨時掌控網站安全情況。 工具



更新Struts2最新版本爲Struts2.3.15.1網站

首先把項目中對應的這幾個包都換成上面的包,這裏要特別說明一下的是commons-lang3-3.1.jar對應的(我項目中就是commons-lang-2.6.jar)是不用刪除替換的,保留它就能夠了,由於它不會更commons-lang3-3.1.jar產生衝突,並且commons-lang還涉及到其它包的應用好比json。改了這些後jar的升級就算完成了。spa

如今就修改配置文件,首先修改web.xml的Struts2的FilterDispatcher改爲以下:

<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>


而後就修改struts.xml的頭部,修改爲

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC  
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
    "http://struts.apache.org/dtds/struts-2.3.dtd">

最後把redirect-action改爲redirectAction。

改了這些後就要把項目中的類出現的錯誤都解決了就能夠正常運行項目了。

相關文章
相關標籤/搜索