各位老鐵們,大家好,今天由我來為大家分享struts2安全問題,以及java彈出的安全警告卡死的相關問題知識,希望對大家有所幫助。如果可以幫助到大家,還望關注收藏下本站,您的支持是我們最大的動力,謝謝大家了哈,下面我們開始吧!
struts2擴展組件是什么管理
在Struts應用的視圖中包含JSP,客戶化標簽兩個組件。Struts是一種基于MVC經典設計模式的開放源代碼的應用框架,也是目前Web開發中比較成熟的一種框架。通過把Servlet、JSP、JavaBean、自定義標簽和信息資源整合到一個統一的框架中,為Web開發提供了具有高可配置性的MVC開發模式。Struts體系結構實現了MVC設計模式的概念,它將Model、View和Controller分別映射到Web應用中的組件。Model由代表系統狀態和商業邏輯Action來構建,View是由JSP和struts提供的自定義標簽來實現,Controller負責控制流程,由ActionServlet和ActionMapping來完成。
你會擔心云服務器安全嗎
會有危險
我的服務器是騰訊云的(1塊錢一個月)的學生服務器,上面跑著我的小博客,今年八月完成了服務器的docker化,用nginx-proxy完成反向代理和套https。我今天dump下了它的日志,準備看一下日志中有多少有趣的東西。
日志文件的大小足足有16M大,也許幾張高清大圖的大小遠超16M,但是這可是純文本文件啊。為了分析方便我使用腳本將日志文件分字段拆分插入了mariadb數據庫,方便以后分析查詢。
由于使用了nginx-proxy容器作為反向代理,只有以正確的域名訪問我的服務器才會得到正確的響應,通過ip訪問或者通過錯誤的域名訪問統統503。沒想到這個不太刻意的設置居然成了我的服務器的第一道防火墻。
把服務器日志導入數據庫,大概濾掉正常的請求,首先看到的是師傅們掃目錄的記錄。
這些請求全部來自一個香港的IP(大概是個vps),這些大概是掃描服務器中的webshell(webshell是可以通過web直接操作服務器的后門,可以說是一種木馬),也有的是掃描wp-config.php這樣的WordPress配置文件,一般沒有什么危害,只是作為信息收集。
繼續往下看我們發現了更有趣的東西:有4834條記錄與phpmyadmin的掃描有關。我們知道phpmyadmin是一個很好用的類MySQL數據庫的管理前端,很多學藝不精的程序員很喜歡用它管理數據庫,大大咧咧的把它放在了根目錄,再配以祖傳的弱密碼。被拖庫只是時間和運氣問題。這些流量有來自香港,福建,也有北京。
是不是所有掃描都是那么簡單粗暴呢,并沒有,我們注意了這位師傅的掃描記錄:
風格一改其他師傅簡單粗暴的風格,懷著好奇心我們搜尋了一下這些請求背后的故事。
第一個payload針對的是織夢cms(Dedecms)的任意文件上傳漏洞,這已經是一個老漏洞了,黑客可以利用這個漏洞上傳webshell木馬什么的,最終控制服務器。
第三個payload(xycms)針對的是xycms咨詢公司建站系統的漏洞(都不能叫漏洞了),直接把數據庫放在了web目錄下,真正實現一鍵拖庫。
(廠商忽略此漏洞可真是太蠢了)
下一個漏洞又是織夢cms的,就是那個download.php和ad_js的。這是一個2013年的高危漏洞,因為變量未被正確初始化,黑客可以通過一套花里胡哨的操作執行sql注入,并且還能通過一個程序把數據庫中的內容寫入文件,最終通過一套連環操作在服務器中留下后門。
下一個是個新漏洞,這個高危漏洞今天7月才被爆出,可以遠程執行代碼,來自ModxRevolution
漏洞全來自php?并沒有,我們注意到這樣一條記錄:
此攻擊針對的是巨硬家IIS6.0的一個安全漏洞,這是一個利用緩存區溢出的高危漏洞,可以導致遠程代碼執行。
還有一些利用Weblogic的新洞(CVE-2018-3252),ApacheStruts2的漏洞(CVE-2017-5638)的payload我在這里就不再列舉了。當然當然,最有意思的還屬最后一個payload:
這個payload罕見的附上了用戶名,我們在網上搜索和這個payload相關信息的時候發現,這并不是一個針對服務器的攻擊payload,而是針對一些物聯網設備,比如說……攝像頭。
hi3510是海思公司推出的一款視頻壓縮芯片,主要用于攝像頭,我們找到了一份IPCameraCGI的應用指南,找到了相對應的命令用法:
但是我們并沒有在網上搜索到相關的漏洞,但是發現很多網站的日志中都存在這條記錄
所以這極有可能是一個還沒有公開的,物聯網中攝像頭中存在的漏洞。所以,有師傅日了攝像頭當肉雞看起來并不是傳言。
然而,上面分析的這些,也只是黑客黑產冰山上的小冰渣。現實比這要嚴重的多,也許黑客在黑市中販賣著你的隱私,你的服務器,而你卻渾然不知。
什么是Struts框架
這Struts2框架是一個用于開發JavaEE網絡應用程序的開放源代碼網頁應用程序架構。它利用并延伸了JavaServletAPI,鼓勵開發者采用MVC架構。Struts2以WebWork優秀的設計思想為核心,吸收了Struts框架的部分優點,提供了一個更加整潔的MVC設計模式實現的Web應用程序框架。
如何學習Struts2
學習路線
Struts2開發環境搭建
Struts2架構
Struts2HelloWorldStruts2
配置文件
Struts2動作
Struts2攔截器
Struts2結果和結果類型
Struts2值棧OGNL
Struts2文件上傳
Struts2數據庫訪問
Struts2發送電子郵件
Struts2驗證框架
Struts2本地化
Struts2類型轉換
Struts2主題和模板
Struts2異常處理
。。。。。。
WebWork框架開始以Struts框架為基礎,其目標是提供一個加強和改進框架Struts來使web開發的開發人員更容易。
一段時間后,WebWork框架和Struts社區聯手打造的著名的Struts2框架。
Struts2框架的特點:http://codingdict.com/article/5216
這里有一些強大的功能,可能會迫使你考慮Struts2:
POJO表單和POJO動作-Struts2的Struts框架已經擺脫了動作表單組成部分,Struts2可以使用任何POJO接收的形式輸入。同樣現在可以看到任何POJO作為一個Action類。標簽支持-Struts2中,提高了表單標簽和新標簽允許開發人員編寫更少的代碼。AJAX支持-Struts2中已確認由Web2.0技術接管,并整合到產品中,通過創建AJAX標簽,功能非常相似的標準Struts2標簽AJAX支持。易于整合-Struts2集成各種整合與其他框架如Spring,Tiles和SiteMesh是現在更容易。模板支持-支持生成使用模板。插件支持-可以提高核心Struts2的特性,并增強使用插件。大量的插件可供Struts2。性能分析-Struts2的分析,調試和分析應用程序提供了集成。除此之外,Struts還提供了集成的內置調試工具調試。易于修改標簽-Struts2的標簽標注,可以調整使用Freemarker的模板。這并不需要JSP或Java知識。基本HTML,XML和CSS知識是足夠修改標簽。提倡少配置-Struts2促進較少的配置的幫助下,使用默認的各種設置值。不必配置的東西,除非它不符Struts2的默認設置。視圖技術-Struts2中有一個很大的支持多個視圖選項(JSP,Freemarker,Velocity和XSLT)以上只是Struts2的十大功能,這使得它是企業公司級應用框架。
Struts2的缺點:
雖然Struts2的配備了一個偉大的功能列表,但我不會忘記提及關于Struts2一些缺點,將需要大量的改進措施:
更大的學習曲線-要使用MVC與Struts,你必須是習慣使用標準的JSP,ServletAPI和大量精心設計的框架。欠佳的文檔-Struts有標準的servlet和JSPAPI的相比,更少的在線資源,許多用戶第一時間發現網上Apache文檔混亂和管理不善的組織。較少透明度-Struts應用程序中,有很多幕后比正常的基于Java的Web應用程序,這使得它很難理解的框架。最后一點,一個好的框架應該提供通用的特性,許多不同類型的應用程序,可以利用它。Struts2是一個最好的網絡架構和高度被用于開發富Internet應用程序(RIA)。
struts2版本如何查看
struts的版本信息查看方法:
查看struts.jar\META-INF\MANIFEST.MF。再查看Implementation-Version,看后面的數字,也就是下列代碼中的Implementation-Version:1.2.7
Manifest-Version:1.0
Specification-Title:StrutsFramework
Class-Path:commons-beanutils.jarcommons-collections.jarcommons-dig
ester.jarcommons-fileupload.jarcommons-logging.jarcommons-validato
r.jarjakarta-oro.jar
Created-By:1.3.1_04-b02(SunMicrosystemsInc.)
Ant-Version:ApacheAnt1.6.1
Implementation-Title:StrutsFramework
Specification-Version:1.2.7
Specification-Vendor:TheApacheSoftwareFoundation
Implementation-Vendor-Id:org.apache
Extension-Name:StrutsFramework
Implementation-Version:1.2.7
Implementation-Vendor:TheApacheSoftwareFoundation
好了,文章到此結束,希望可以幫助到大家。