天天看點

阿裡雲幫助雲上使用者應對Struts2高危漏洞

2017年3月6日,apache struts2被曝存在遠端指令執行漏洞,漏洞編号:s2-045,cve編号:cve-2017-5638,官方評級為高危,該漏洞是由于在使用基于jakarta插件的檔案上傳功能條件下,惡意使用者可以通過修改http請求頭中的content-type值來觸發該漏洞,進而執行任意系統指令,導緻系統被黑客入侵。

完成漏洞評級和确認影響範圍後,阿裡雲安全應急團隊迅速啟動應急流程,對該漏洞進行成因分析,并迅速釋出官方安全漏洞預警公告。

在流程啟動啟動的同時,阿裡雲雲盾的各個産品關聯響應,幫助使用者應對struts2漏洞。安騎士迅速完成雲上ecs安全檢測,态勢感覺用行為檢測功能精準捕捉攻擊源ip,web應用防火牆在次日上午成功更新防護規則,幫助使用者有效攔截利用該漏洞發起的攻擊。

通過及時地檢測、通知和規則更新,所有阿裡雲雲盾使用者均未是以漏洞發生安全事件。

根據官方的漏洞公告

<a href="https://cwiki.apache.org/confluence/display/ww/s2-045" target="_blank">https://cwiki.apache.org/confluence/display/ww/s2-045</a>

可以看出漏洞的主要原因是出現在content-type

通過http header中的content-type,注入ognl語句來進行遠端指令執行。

struts2在對于異常的處理時出現了問題。

受影響的版本:struts 2.3.5 - struts 2.3.31, struts

2.5 - struts 2.5.10

測試環境:tomcat7,struts2.3.16

測試過程:在上傳頁面攔截請求的資料包

阿裡雲幫助雲上使用者應對Struts2高危漏洞

在http header裡增加一個content-type的key,value就是我們的poc

阿裡雲幫助雲上使用者應對Struts2高危漏洞
阿裡雲幫助雲上使用者應對Struts2高危漏洞

對于使用了基于jakarta實作檔案上傳multipart解析器,檢測方式檢視web目錄下/web-inf/lib/目錄下的struts-core.x.x.jar ,如果這個版本在struts2.3.5 到 struts2.3.31 以及 struts2.5 到 struts2.5.10之間則存在漏洞,請更新到struts 2.3.32或2.5.10.1版本。

使用其它方式實作檔案上傳的multipart解析器。

使用第三方的防護裝置進行防護。

删除commons-fileupload-x.x.x.jar檔案(會造成上傳功能不可用)。