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