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