昨天的信息安全和互聯(lián)網(wǎng)界,再一次被Struts2刷了一次屏:Struts2存在遠程代碼執(zhí)行的嚴重漏洞(漏洞編號S2-045,CVE編號:cve-2017-5638)真椿,并被官方定級為高危風險鹃答。黑客可以利用該漏洞通過瀏覽器在遠程服務器上執(zhí)行任意系統(tǒng)命令,將會對受影響站點造成嚴重影響突硝,引發(fā)數(shù)據(jù)泄露测摔、網(wǎng)頁篡改、植入后門解恰、成為肉雞等安全事件锋八。
那么,問題來了护盈,Struts2到底是什么玩意挟纱?
Struts2是一個基于MVC設計模式的Web應用框架,它本質(zhì)上相當于一個servlet黄琼,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與視圖的數(shù)據(jù)交互整慎,它在國內(nèi)使用非常廣泛脏款,被大量的政府、金融以及大中型互聯(lián)網(wǎng)公司所使用裤园。所以撤师,每一次爆出Struts2的漏洞,相關(guān)單位和各大互聯(lián)網(wǎng)公司都非常敏感拧揽。日前盛傳的“京東12G用戶數(shù)據(jù)泄露事件”的罪魁禍首就是Struts漏洞剃盾。
近年來,Struts漏洞頻發(fā)淤袜,影響比較大的有如下這些:
2010年 S2-005
CVE-2010-1870 XWork ParameterInterceptors bypass allows OGNLstatement execution
2012年1月 S2-008
CVE-2012-0392 struts2 DevMod Remote Command Execution Vulnerability
2012年1月 S2-009
CVE-2011-3923 Struts<=2.3.1參數(shù)攔截器代碼執(zhí)行
2013年 5月 S2-013
CVE-2013-1966 Struts2 <= 2.3.14 includeParams屬性遠程命令執(zhí)行漏洞
2013年7月 S2-016
CVE-2013-2251 Struts2 <= 2.3.15.1 action痒谴、redirect、redirectAction前綴遠程命令執(zhí)行漏洞
2014年3月 S2-020
Struts2 <= 2.3.16 DoS attacks and ClassLoader manipulation
2014年4月 S2-021
Struts2 <= 2.3.16.1 bypass patch(ClassLoader manipulation)
回顧struts2的漏洞歷史铡羡,Apache官方難辭其咎积蔚,首先,開發(fā)人員安全意識不強烦周,雖然采取了基本的安全措施尽爆,但是形同虛設。其次读慎,官方修復力度不夠漱贱,給我的感覺總像是在敷衍了事,未能從根本上解決問題夭委。再就是幅狮,官方的開放精神確實很震撼,竟然直接將漏洞的PoC掛在官網(wǎng),這樣給了很多人進一步研究漏洞利用的機會彪笼,這個也是導致問題更加嚴重的一個原因钻注。
近兩年關(guān)于struts2的攻擊事件頻發(fā),攻擊面覆蓋各大門戶網(wǎng)站配猫,包括向移動幅恋、電信、聯(lián)通泵肄、各大網(wǎng)銀捆交、證券等等,因為struts2是一款功能非常強大的j2ee框架腐巢,特別是對于廣大開發(fā)人員品追,應用非常廣泛。所以一旦struts2出現(xiàn)0day冯丙,導致互聯(lián)網(wǎng)上出現(xiàn)大面積被入侵肉瓦、被拖庫,信息泄露等事件胃惜。
在這里泞莉,筆者提醒廣大java開發(fā)人員以及系統(tǒng)運維人員,面對這么一個漏洞百出的框架船殉,你還敢用嗎鲫趁,還是早日換掉這個危險的struts2吧!實在必須要用利虫,也請及時更新struts2框架版本挨厚。如果有能力,最好自己去開發(fā)應用框架糠惫,避免使用開源框架疫剃。
參考:
1.http://www.freebuf.com/articles/web/33301.html
2.https://cwiki.apache.org/confluence/display/WW/Security+Bulletins
3.http://www.leiphone.com/news/201703/GGlXuODrwTovCx0u.html
4.百度百科