Struts2 允許開發(fā)人員通過插件架構(gòu)包含其他 Struts2 應(yīng)用程序。從網(wǎng)站:
Struts2 插件包含擴(kuò)展、替換或添加到現(xiàn)有 Struts 框架功能的類和配置。除了 JAR 文件之外,還可以通過將其 JAR 文件添加到應(yīng)用程序的類路徑來安裝插件,以滿足插件本身可能具有的任何依賴項(xiàng)。要配置插件,JAR 應(yīng)該包含一個(gè) struts-plugin.xml 文件,該文件遵循與普通 struts.xml 文件相同的格式。
這使得 Struts2 應(yīng)用程序中的安全代碼審查更具挑戰(zhàn)性。下面是一個(gè)示例過程:
檢查目錄下的 Web 應(yīng)用程序可訪問的所有 JAR 文件。WEB-INF/lib
對(duì)于每個(gè) JAR,檢查它是否有文件。struts-plugin.xml
如果它包含一個(gè) ,請(qǐng)像檢查普通的 Struts2 Web 應(yīng)用程序一樣檢查它(入口點(diǎn)、接收器以及介于兩者之間的所有內(nèi)容)。struts-plugin.xml
撇開插件審核程序不談,一個(gè)突出的安全風(fēng)險(xiǎn)插件是配置瀏覽器。
配置瀏覽器是一個(gè)非常好的插件,它可以幫助開發(fā)人員了解已部署的 Struts2 應(yīng)用程序的詳細(xì)信息。反之亦然,當(dāng)部署到生產(chǎn)環(huán)境時(shí),配置瀏覽器可以幫助其他人了解該應(yīng)用程序是如何部署的,我聽到你問它披露了什么?
應(yīng)用程序中的所有 Struts2 入口點(diǎn)、公開入口點(diǎn)的類以及入口點(diǎn)的有用 URL
結(jié)果代碼、它們指向的文件和默認(rèn)參數(shù)值
入口點(diǎn)內(nèi)的變量名稱和類型
支柱版本2
攔截器堆棧和訂購
等等,等等,等等...
除非默認(rèn)參數(shù)值包含敏感信息,否則這些都不能真正直接利用。但是來吧,這是很多信息!讓你的攻擊者稍微工作一下
至少讓他們?cè)趪L試猜測(cè) URL 時(shí)發(fā)出嘈雜,而不是將它們?nèi)啃孤冻鋈ァ?/p>
回到插件,還記得它們是如何部署的嗎?配置瀏覽器插件只需要在類路徑上。它不會(huì)在主應(yīng)用程序的源代碼或配置文件中的任何位置聲明。也就是說,沒有明顯的跡象表明插件將被加載。哎喲!
然而,希望并沒有消失。如果應(yīng)用程序使用的是Maven,請(qǐng)查看該應(yīng)用程序的內(nèi)容,如下所示:pom.xml
org.apache.struts struts2-config-browser-plugin 2.3.15.1
上面告訴Maven下載配置瀏覽器JAR并將其包含在Web應(yīng)用程序中。請(qǐng)注意,我們正在研究應(yīng)用程序的編譯方式與應(yīng)用程序代碼本身。是的。。。如果應(yīng)用程序使用的是其他構(gòu)建系統(tǒng),請(qǐng)檢查是否聲明了類似的東西。或者也許只是查找全部或文件。如果應(yīng)用程序處于活動(dòng)狀態(tài),請(qǐng)嘗試掃描。
審核編輯:郭婷
-
接收器
+關(guān)注
關(guān)注
14文章
2458瀏覽量
71806 -
瀏覽器
+關(guān)注
關(guān)注
1文章
1016瀏覽量
35281 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3245瀏覽量
57614
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論