您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Struts2框架站點風險的示例分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
1. 概述
Struts是Apache軟件基金會(ASF)贊助的一個開源項目。它最初是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框架
隨著Struts2框架的普及,越來越多的企業單位使用Struts2框架進行開發,近年來多次爆出高危漏洞,多個政府站點,銀行、大型互聯網公司等單位,受到影響,例如:2016年12月爆出京東 12G 用戶數據泄露,其中包括用戶名、密碼、郵箱、QQ號、電話號碼、身份證等多個維度,數據多達數千萬條,究其原因源于 2013 年 Struts 2 的安全漏洞問題。當時國內幾乎所有互聯網公司及大量銀行、政府機構都受到了影響,導致大量數據泄露,而每次struts2爆出漏洞后各大互聯網漏洞平臺也接收到多個反饋如:
Struts2的代碼執行問題最早要追溯到2010年,當時來自Google安全Team的Meder Kydyraliev發現可以通過用unicde編碼的形式繞過參數攔截器對特殊字符“#”的過濾,造成代碼執行問題,官方漏洞編號S2-003,
回顧struts2的漏洞歷史,我們發現官方難辭其咎,首先,開發人員安全意識不強,雖然采取了基本的安全措施,但是形同虛設。其次,官方修復力度不夠,給我們的感覺總像是在敷衍了事,未能從根本上解決問題。再就是,官方的開放精神確實很震撼,竟然直接將漏洞的PoC掛在官網,這樣給了很多人進一步研究漏洞利用的機會,這個也是導致問題更加嚴重的一個原因。
影響比較大,利用比較廣泛的struts2漏洞:
CVE-2010-1870XWork ParameterInterceptors bypass allows OGNLstatement execution
CVE-2012-0392struts2 DevMod Remote Command Execution Vulnerability
CVE-2011-3923Struts<=2.3.1參數攔截器代碼執行
CVE-2013-1966Struts2 <= 2.3.14 includeParams屬性遠程命令執行漏洞
CVE-2013-2251Struts2 <= 2.3.15.1 action、redirect、redirectAction前綴遠程命令執行漏洞
Struts2 <=2.3.16 DoS attacks and ClassLoader manipulation
Struts2 <=2.3.16.1 bypass patch(ClassLoader manipulation)
CNVD-2016-02506,CVE-2016-3081,受影響版本Struts 2.3.20 - StrutsStruts 2.3.28(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框架我們對省內使用Struts框架的分布情況進行了調查統計,通過對個地市站點進行指紋識別,繪制出省內各地市使用Strust2框架分布圖表如下:
結合大數據分析和關鍵字識別我們對采集到的使用Strust2站點所在的行業情況進行分析,繪制出如下圖表:
具體表格數據:
序號 | 行業類型 | 數量 | 百分比 |
1 | 政府部門 | 447 | 28.29% |
2 | 教育機構 | 155 | 9.80% |
3 | 金融行業 | 110 | 6.96% |
4 | 保險行業 | 28 | 1.77% |
5 | 證券行業 | 14 | 0.88% |
6 | 能源行業 | 8 | 0.50% |
7 | 交通行業 | 93 | 5.88% |
8 | 電信運營商 | 114 | 7.21% |
9 | 互聯網企業 | 398 | 25.18% |
10 | 其他企業 | 213 | 13.48% |
從上圖可以看出位于前三位(注:不計其他企業)的是政府部門(占比28.29%)、互聯網企業(25.18%)、教育機構(9.8%)
我們針對采集到的使用Struts2中間件站點進行漏洞檢測,本次使用互聯網上影響比較大的幾個高危漏洞進行驗證,檢測漏洞(S2-045、S2-037、S2-032、S2-016)的存在修復個加固情況,經過對1580個站點樣本進行檢測,發現仍然有部分站點Struts2漏洞并未修復,對檢測出漏洞的站點統計信息如下圖:
序號 | 行業 | 存在漏洞數量 |
---|---|---|
1 | 政府部門 | 3 |
2 | 教育機構 | 2 |
3 | 金融行業 | 1 |
4 | 互聯網企業 | 2 |
5 | 其他 | 2 |
檢測中我們發現有很多網站Stuts2之前的老漏洞尚未進行過修復,從而在Stuts2漏洞的中,將網站注冊用戶赤裸裸地暴露在黑客攻擊槍口面前。
面對日益復雜的形勢,信息安全已經成為一個不僅僅只關乎技術的問題。科技的發展是一把雙刃劍,其能造福人類,亦能產生破壞性的功效。而這一點,除了技術本身之外,或許更多的要從我們的意識層面去把握,面對漏洞帶來如此之大的影響,足以給互聯網業界信息安全從業人員帶來警醒:信息安全的警鐘,應時刻長鳴。
1、我們在信息系統開發中應養成良好的開發習慣,多數漏洞從開發階段就存在,而由于開發過程中的疏忽,邏輯漏洞等也會給系統帶來很大的安全風險。
2、網站數據及時備份,在系統遭到攻擊時,可以第一時間對被攻擊系統進行恢復。
3、對后臺服務安裝防病毒軟件,定時對服務器進行病毒查殺,等安全檢查。
4、實時留意最新的互聯網漏洞情況,對信息系統存在的漏洞進行及時修補。
5、經常性的對系統進行滲透測試,漏洞測試等工作,及時發現問題,及時修復,防止漏洞暴露在互聯網上。
6、對不在使用的系統進行及時下線,一般老系統中存在更多的安全問題,管理不善可能會泄露大量敏感信息。
上述就是小編為大家分享的Struts2框架站點風險的示例分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。