首頁  >  文章  >  運維  >  Struts2框架站點風險的範例分析

Struts2框架站點風險的範例分析

王林
王林轉載
2023-05-30 12:32:14924瀏覽

1.     概述

Apache軟體基金會(ASF)贊助的開源專案是Struts。該項目最初是Jakarta項目的分支,隨後被提升為ASF的頂級項目。它透過採用Java Servlet/JSP技術,實現了基於Java EE Web應用的Model-View-Controller〔MVC〕設計模式的應用框架〔Web Framework〕,是MVC經典設計模式中的一個經典產品。 

在Java EE的Web應用發展的初期,除了使用Servlet技術以外,普遍是在JavaServer Pages(JSP)的原始碼中,採用HTML與Java程式碼混合的方式進行開發。這兩種方法在混合表現與業務邏輯程式碼方面不可避免,為前期開發和後期維護帶來了巨大的複雜度。為了擺脫上述的約束與限制,把業務邏輯代碼從表現層中清晰的分離出來,2000年,Craig McClanahan採用了MVC的設計模式開發Struts。該框架產品曾經被視為最廣泛和最流行的JAVA WEB應用框架

   Struts2是一個基於MVC設計模式的Web應用框架,它本質上相當於一個servlet,在MVC設計模式中, Struts2作為控制器(Controller)來建立模型與視圖的資料互動。 Struts 2是Struts的下一代產品,是在struts 1和WebWork的技術基礎上進行了合併的全新的Struts 2框架

2.     漏洞盤點

2.1.  漏洞歷史

隨著Struts2框架的普及,越來越多的企業單位使用Struts2框架進行開發,近年來多次爆出高危險漏洞,多個政府站點,銀行、大型網路公司等單位,受到影響,例如:2016年12月爆出京東12G 用戶資料洩露,其中包括使用者名稱、密碼、信箱、QQ、電話號碼、身分證等多個維度,資料多達數千萬條,究其原因源自於2013 年Struts 2 的安全漏洞問題。當時國內幾乎所有網路公司及大量銀行、政府機構都受到了影響,導致大量資料洩露,而每次struts2爆出漏洞後各大網路漏洞平台也接收到多個回饋如:


Struts2框架站點風險的範例分析

Struts2的程式碼執行問題最早要追溯到2010年,當時來自Google安全Team的Meder Kydyraliev發現可以透過用unicde編碼的形式繞過參數攔截器對特殊字符「#」的過濾,造成程式碼執行問題,官方漏洞編號S2-003,

回顧struts2的漏洞歷史,我們發現官方難辭其咎,首先,開發人員安全意識不強,雖然採取了基本的安全措施,但是要形同虛設。其次,我們覺得官方的修復措施缺乏力度,似乎只是敷衍了事,而未能真正解決問題的根源。再就是,官方的開放精神確實很震撼,竟然直接將漏洞的PoC掛在官網,這樣給了很多人進一步研究漏洞利用的機會,這個也是導致問題更加嚴重的一個原因。

2.2.  struts2漏洞盤點

影響比較大,利用比較廣泛的struts2漏洞:

CVE-2010-1870XWork ParameterInterceptors bypass allows OGNLstatement execution

CVE-2012-0392struts2 DevMod Remote Command Execution Vulnerability

CVE-2011-3923Struts

CVE-2013-1966Struts2 <d includes 屬性.遠端指令執行漏洞

CVE-2013-2251Struts2

Struts2

Struts2

CNVD-2016-02506,CVE-2016-3081,受影響版本Struts 2.3.20 - StrutsStruts 2.3. .20.3和2.3.24.3除外)

CVE編號:CVE-2016-4438 Struts(S2-037)遠端程式碼執行漏洞,受影響版本:Struts 2.3.20 - Struts Struts 2.3.28.1

CVE-2017-5638 受影響版本:Struts 2.3.5 – Struts 2.3.31

Struts 2.5 –Struts 2.5.10

其他具體可參考struts2官網提供的漏洞歷史:

https://cwiki.apache.org/confluence/display/WW/Security Bulletins

Struts2框架站點風險的範例分析

##3 .     分佈情況

針對漏洞頻發的Struts2框架我們對省內使用Struts框架的分佈情況進行了調查統計,透過對個地市站點進行指紋識別,繪製出省內各地市使用Strust2框架分佈圖表如下:


Struts2框架站點風險的範例分析

   結合大數據分析和關鍵字識別我們對採集到的使用Strust2網站所在的產業狀況進行分析,繪製出如下圖表:


Struts2框架站點風險的範例分析

特定表格資料:

政府部門 教育機構 9.80%  3  ##110  6.96%  ##6  
#序號   行業類型   數量   #百分比  
#1  
447   28.29%   2  
2   教育機構  155  
3   ##9.80%  
金融業 ##110   6.96%  
#4   保險業  28   1.77%  
5   證券業  14   0.88%  

能源產業 

8  

0.50%  7  交通產業 5.88%  114  #網路企業10  從上圖可以看出位於前三名(註:不計其他企業)的是政府部門(佔28.29%)、網路企業(25.18%) 、教育機構(9.8%)   我們針對採集到的使用Struts2中間件站點進行漏洞檢測,本次使用互聯網上影響比較大的幾個高危險漏洞進行驗證,檢測漏洞(S2-045、 S2-037、S2-032、S2-016)的存在修復個加固情況,經過對1580個站點樣本進行檢測,發現仍有部分站點Struts2漏洞並未修復,對檢測出漏洞的站點統計資料如下圖:
93   5.88%  
8   電信業者 
7.21%   9  
398   25.18%  
其他企業  #213   13.48 %  

序號

行業

##存在漏洞數量

1

政府部門

3############2#######教育機構######2############3######金融業#####1############4 ######網路企業######2############5######其他#######2################# #######檢測中我們發現有很多網站Stuts2之前的舊漏洞尚未進行過修復,從而在Stuts2漏洞的中,將網站註冊用戶赤裸裸地暴露在黑客攻擊槍口面前。 ######4.     安全建議######隨著情勢日益複雜化,資訊安全已變成不只涉及科技的問題。科技的發展是一把雙面刃,其能造福人類,亦能產生破壞性的功效。而這一點,除了科技本身之外,或許更多的要從我們的意識層面去把握,面對漏洞帶來如此之大的影響,足以給互聯網業界資訊安全從業人員帶來警醒:資訊安全的警鐘,應時刻長鳴。 ######1、我們在資訊系統開發中應養成良好的開發習慣,多數漏洞從開發階段就存在,而由於開發過程中的疏忽,邏輯漏洞等也會為系統帶來很大的安全風險。 ######2、網站資料及時備份,當系統遭到攻擊時,可以第一時間對被攻擊系統進行恢復。 ######3、對後台服務安裝防毒軟體,定時對伺服器進行病毒查殺,等安全檢查。 ######4、即時留意最新的網路漏洞狀況,及時修補資訊系統存在的漏洞。 ######5、經常性的對系統進行滲透測試,漏洞測試等工作,及時發現問題,及時修復,防止漏洞暴露在互聯網上。 ######6、對不在使用的系統進行及時下線,一般舊系統中存在更多的安全問題,管理不善可能會洩露大量敏感資訊。 ###

以上是Struts2框架站點風險的範例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除