eSafe白帽駭客資安網-網絡安全背後的巨人,提供駭客,網站入侵測試,網站被駭,網站漏洞,駭客入侵,資訊安全,入侵,ecshop,wordpress,漏洞修復,木馬清除,資安服務

Struts2 S2-045 2.3版本漏洞利用及修復方案

       

        Apache Struts2是應用於創建網站,平台,Java環境的一個開放式源代碼MVC框架
 
系統。在Struts2 2.3.5-2.3.31 Struts 2.5-Struts 2.5.10版本上發現漏洞,這個漏
 
洞是利用Struts2的上傳功能代碼裡的非正常處理函數代碼,沒有正確的去處理訪問客
 
戶輸入的錯誤內容。導致駭客可以通過輸入那裡發送惡意的POST數據包,利用這個漏
 
洞在windows 2003 2008 2012主機跟Linux centos系統主機上執行系統權限命令。 
 
 
 
駭客在上傳文件的同時,通過POST提交HTTP請求頭中的Content-Type值來利用這個漏洞,進而執行主機的管理員權限命令。eSafe白帽資安網公司是一家專注於:主機安全、網站安全、網站安全檢測、網站漏洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。
 
 
1.基於Jakarta插件的文件上傳功能
 
2.入侵攻擊者偽造post 請求裡的Content-Type的值
 
出問題的網站代碼如下:
 
if  (LocalizedTextUtil.findText(this.getClass(), errorKey, defaultLocale, null,  new Object[0]) == null) {
            return LocalizedTextUtil.findText(this.getClass(),  "struts.messages.error.uploading", defaultLocale, null, new  Object[] { e.getMessage() });
         } else {
            return  LocalizedTextUtil.findText(this.getClass(), errorKey, defaultLocale, null,  args);
         }
 

 
在以下3個代碼文件裡都含有漏洞代碼:
 
1.coresrcmainjavaorgapachestruts2dispatchermultipartMultiPartRequestWrapper.java
 
2.coresrcmainjavaorgapachestruts2dispatchermultipartJakartaMultiPartRequest.java
 
3.coresrcmainjavaorgapachestruts2dispatchermultipartJakartaStreamMultiPartRequest.java
 
 
漏洞利用代碼如下:(python 利用方法)
 
 
 
Struts2 漏洞修復:
 
安全檢查下網站web根目錄下的 /WEB-INF/lib/,以及子目錄下的struts-
 
core.x.x.jar ,如果存在這個文件,說明是有漏洞,這個版本在Struts2.3.5 到 
Struts2.3.31 以及 Struts2.5跟Struts2.5.10之間。
 
更新到Strusts2.3.32或者Strusts2.5.10.1最新版本,或使用第三方網站安全公司進
行安全加固以及安全防禦。
 
臨時的安全解決方案:刪除/WEB-INF/lib/下的commons-fileupload-x.x.x.jar文件
 
(如果刪除會造成網站的上傳功能受到影響)eSafe白帽資安網公司是一家專注於:主機安

全、網站安全、網站安全檢測、網站漏洞修
復,滲透測試,安全服務於一體的網絡安全服務

提供商。
 
eSafe白帽資安網工程師認為這次的漏洞很嚴重 可以跟2013年的那個st2-016漏洞可以相提並
 
論了,網站運營者要加強安全審計,寧可累一點,也不要讓這種漏洞攻擊造成的損失
 
發生在自己的網站上。
分享: