使Struts2应用程序更安全:不要包含配置浏览器

描述

Struts2 允许开发人员通过插件架构包含其他 Struts2 应用程序。从网站:

Struts2 插件包含扩展、替换或添加到现有 Struts 框架功能的类和配置。除了 JAR 文件之外,还可以通过将其 JAR 文件添加到应用程序的类路径来安装插件,以满足插件本身可能具有的任何依赖项。要配置插件,JAR 应该包含一个 struts-plugin.xml 文件,该文件遵循与普通 struts.xml 文件相同的格式。

这使得 Struts2 应用程序中的安全代码审查更具挑战性。下面是一个示例过程:

检查目录下的 Web 应用程序可访问的所有 JAR 文件。WEB-INF/lib

对于每个 JAR,检查它是否有文件。struts-plugin.xml

如果它包含一个 ,请像检查普通的 Struts2 Web 应用程序一样检查它(入口点、接收器以及介于两者之间的所有内容)。struts-plugin.xml

撇开插件审核程序不谈,一个突出的安全风险插件是配置浏览器。

配置浏览器是一个非常好的插件,它可以帮助开发人员了解已部署的 Struts2 应用程序的详细信息。反之亦然,当部署到生产环境时,配置浏览器可以帮助其他人了解该应用程序是如何部署的,我听到你问它披露了什么?

应用程序中的所有 Struts2 入口点、公开入口点的类以及入口点的有用 URL

结果代码、它们指向的文件和默认参数值

入口点内的变量名称和类型

支柱版本2

拦截器堆栈和订购

等等,等等,等等...

除非默认参数值包含敏感信息,否则这些都不能真正直接利用。但是来吧,这是很多信息!让你的攻击者稍微工作一下 

至少让他们在尝试猜测 URL 时发出嘈杂,而不是将它们全部泄露出去。

回到插件,还记得它们是如何部署的吗?配置浏览器插件只需要在类路径上。它不会在主应用程序的源代码或配置文件中的任何位置声明。也就是说,没有明显的迹象表明插件将被加载。哎哟!

然而,希望并没有消失。如果应用程序使用的是Maven,请查看该应用程序的内容,如下所示:pom.xml


    org.apache.struts
    struts2-config-browser-plugin
    2.3.15.1 

上面告诉Maven下载配置浏览器JAR并将其包含在Web应用程序中。请注意,我们正在研究应用程序的编译方式与应用程序代码本身。是的。。。如果应用程序使用的是其他构建系统,请检查是否声明了类似的东西。或者也许只是查找全部或文件。如果应用程序处于活动状态,请尝试扫描。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分