目前主流應用開發(fā)平臺J2EE的Apache Struts2框架存在可執(zhí)行遠程代碼的嚴重漏洞,Struts2官方已經(jīng)確認該漏洞(漏洞編號S2-045),并定級為高危漏洞。
一、Struts2漏洞描述
(一)漏洞信息。此次Struts2漏洞是基于Jakarta plugin插件的Struts遠程代碼執(zhí)行漏洞,該漏洞可造成RCE遠程代碼執(zhí)行,漏洞利用無任何限制條件,且可繞過絕大多數(shù)的防護設備的通用防護策略,惡意用戶可在上傳文件時通過修改HTTP請求中的Content-Type值來觸發(fā)該漏洞,從而執(zhí)行系統(tǒng)命令,造成系統(tǒng)被遠程控制,導致數(shù)據(jù)泄露、網(wǎng)頁篡改、后門植入、成為肉雞等后果。
(二)影響范圍。由于此前Struts2曾發(fā)現(xiàn)編號為S2-016的安全漏洞,國內(nèi)外絕大多數(shù)網(wǎng)站現(xiàn)已更新S2-016漏洞補丁,而本次漏洞在S2-016補丁后的版本均會受到影響,具體受影響的軟件版本為Struts 2.3.5 - Struts2.3.31以及Struts 2.5 - Struts 2.5.10。
(三)檢測方法。一是查看web目錄/WEB-INF/lib/下的struts-core.x.x.jar版本信息,如果版本在Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10之間則存在漏洞隱患;二是第三方掃描檢測方式,使用webscan等具有網(wǎng)站深度爬行功能的檢測軟件,進行專項深度漏洞掃描。(不可使用在線一鍵式檢查小工具)
(四)修復方法。一是刪除commons-fileupload-x.x.x.jar文件(可能導致網(wǎng)站的上傳功能或其他應用無法正常使用)或更新Struts2版本至Struts 2.3.32、Struts 2.5.10.1;二是部署專業(yè)的WAF、APT等安全產(chǎn)品并確保規(guī)則庫已經(jīng)升級到最新版本。