文章插圖

文章插圖
繼3月6日struts2爆出漏洞S2-045后,今天又爆出一個漏洞 。Struts2官方已經確認該漏洞(S2-046),并定級為高危漏洞 。S2-046漏洞的報告者來自三家:qualcomm(高通)、dbappsecurity(杭州安恒)、HPE(惠普企業) 。
Struts2的使用范圍及其廣泛,國內外均有大量廠商使用該框架 。
Struts2是一個基于MVC設計模式的Web應用框架,它本質上相當于一個servlet,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與視圖的數據交互 。Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合并的全新的Struts 2框架 。
漏洞分析
使用Jakarta插件處理文件上傳操作時可能導致遠程代碼執行漏洞 。
觸發漏洞需要滿足的條件:
JakartaStreamMultipartRequest已開啟 。也就是說,Struts2需要通過Jakarta stream parser配置(非默認) 。在Struts2配置文件中檢查<constant name=”struts.multipart.parser” value=http://www.mnbkw.com/jxjc/188390/”jakarta-stream” />
【struts1文件上傳 struts2 上傳 下載】上傳的文件大小根據Content-Length頭的聲明要大于Struts2默認允許的2GB大小
文件名中包含OGNL payload
漏洞的危害
攻擊者可通過修改HTTP請求頭部中的Content-Length字段大于Struts2允許的最大值(2GB),并修改Content-Disposition中的filename字段構造惡意代碼利用該漏洞,在受影響服務器上執行系統命令,進一步可完全控制該服務器,造成拒絕服務、數據泄露、網站遭篡改等影響 。由于該漏洞利用所需組件默認啟用,因此漏洞危害較為嚴重 。
漏洞檢測
通過以下方式進行檢測:
查看web目錄下/WEB-INF/lib/目錄下的struts2-core-x.x.x.jar文件,如果x代表的版本號在2.3.5到2.3.31以及2.5到2.5.10之間且未修改默認配置則存在漏洞 。
解決方案
目前網上已經有人公開了漏洞POC,為了保護您的資產安全,請按照下面方法及時修復該漏洞 。
S2-046PoC如下:
2. 如果你正在使用基于Jakarta的文件上傳Multipart解析器,請將Apache Struts升級到2.3.32或2.5.10.1 。
3. 和先前的漏洞一樣,也有相應的變通方案,即采用其他Mutipart解析器實施方案 。Apache也提供2個插件作為解決方案(通過鏈接:https://github.com/apache/struts-extras了解)——如果使用的是Apache Struts 2.3.8 – 2.5.5或者2.3.20 – 2.5.5版本,即可采用該解決方案 。
4. 另外也可以從堆中移除File Upload Interceptor,定義自有堆并設為默認,該解決方案針對Struts2.5.8 – 2.5.10有效 。
- python判斷目錄下是否存在文件名為 python查找文件是否存在
- 服務器下載文件到本地命令get 服務器下載文件到本地命令
- ipad怎樣看pdf文件 ipad怎么在pdf查找文字
- 文檔里面快捷查找按什么鍵 文件內容查找快捷鍵是什么
- host配置文件路徑 本地的host文件
- fileupload控件上傳圖片 uploadfile上傳文件怎么上傳
- input上傳文件獲取文件名 input上傳文件夾
- wps云文檔里的文件怎么刪除 wps云盤里的文件怎么刪除
- u盤能存超過4g的文件么 u盤怎么存儲4g以上的文件
- win10outlook在哪里打開 win10outlook配置文件在哪里
