struts2 框架 远程执行漏洞 解决方案详解

Struts2/XWork < 2.2.0远程执行任意代码漏洞
该漏洞是利用xwork(struts2的核心部件)可以动态构建执行方法的原理(xwork.MethodAccessor.denyMethodExecution),
通过修改一些值能够调用被保护的Java代码,并且执行任意的Java代码:如执行下述代码, 将会调用:java.lang.Runtime.getRuntime().exit(1),造成程序运行异常;
http://mydomain/MyStruts.action?('\u0023_memberAccess[\'allowStaticMethodAccess\']')(meh)=true&(aaa)(('\u0023context[\'xwork.MethodAccessor.den
yMethodExecution\']\u003d\u0023foo')(\u0023foo\u003dnew%20java.lang.Boolean("false")))&(asdf)(('\u0023rt.exit(1)')(\u0023rt\u003d@java.lang.Runtime@getRunti
me()))=1
 
二、解决方案:
本次修改是将struts版本从2.1升级到2.3从而解决该问题
本次修复过程整理如下:
步骤:
1. 删除commons-lang-2.6.jarjfreechart-1.0.13.jarjfreechart-1.0.13-experimental.jarjfreechart-1.0.13-swt.jarognl-2.6.11.jar
struts2-core-2.1.6.jarstruts2-jfreechart-plugin-2.1.6.jarstruts2-spring-plugin-2.1.6.jarxwork-core-2.1.4.jar
2. 上传commons-lang3-3.1.jarognl-3.0.5.jarstruts2-core-2.3.4.jarstruts2-spring-plugin-2.3.4.jarxwork-core-2.3.4.jar
3. 删除struts-default.xml文件;
4. 修改struts.xml,2.0修改为2.3
修改完成后重启tomcat
 
三、测试:
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值