查看: 45|回复: 0

[运维] java struts2 远程执行任意java代码漏洞

[复制链接]

3

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-10-8
发表于 2023-6-12 00:00:00 | 显示全部楼层 |阅读模式

最近网络上爆发大规模的struts2远程代码执行漏洞。

漏洞说明

漏洞危害

漏洞可以远程执行任意Java代码

危险等级

高危

受影响版本

Struts 2.3.20 - Struts 2.3.28 (2.3.20.2 和 2.3.24.2 除外)

CVE

CVE-2016-3081

漏洞前提

开启动态方法调用, struts.xml配置

<constant name="struts.enable.DynamicMethodInvocation" value="true" />

沙盒绕过

通过ognl表达式静态调用获取ognl.OgnlContext的DEFAULT_MEMBER_ACCESS属性,并将获取的结果覆盖_memberAccess属性,这样就可以绕过SecurityMemberAccess的限制。

漏洞详情

https://struts.apache.org/docs/s2-032.html

http://www.freebuf.com/vuls/102836.html

临时解决方案

1. 检查是否使用struts2

2. 检查是否开启动态方法调用

3. 在struts前端nginx配置正则拦截攻击请求

正则:if($args ~ @ognl.OgnlContext@DEFAULT_MEMBER_ACCESS) { return 404;}

升级Struts 2至Struts 2.3.20.2, Struts 2.3.24.2 或者 Struts 2.3.28.1,以便彻底解决此问题。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部