论坛首页 Java企业应用论坛

Struts2/XWork 安全漏洞及解决办法

浏览 68950 次
该帖已经被评为精华帖
作者 正文
   发表时间:2010-07-26  
downpour 写道
实际上,对于那些说网站的图片被删光了的同学,只能证明你们在运维管理上,做得非常不规范!

这个漏洞虽然严重,但是如果规范我们的部署流程,我们会发现,它发生的概率并不大。因为在Linux上,用户的访问权限是有严格限定的。你一个启动应用的用户,居然同时具备删除其他目录中文件的权限?

我想,很多时候没有考虑这些吧。估计登录账号一个,然后切换到root,然后再进行的操作。所有的应用或者目录,都是root权限。
0 请登录后投票
   发表时间:2010-07-26   最后修改:2010-07-26
my_corner 写道
jnduan 写道
jnduan 写道
WebWork用户表示配置拦截器不起作用。看来必须手工给src打patch然后自己编译一个xwork了。


修改xwork 1.2.3 src 里的com.opensymphony.xwork.interceptor.ParametersInterceptor#acceptableName(String name),在方法最前面加上:
boolean foundMatch = false;
foundMatch = name.contains("\\u0023");
if(foundMatch){
    return false;
}


然后用SourceLevel 1.5编译后打成jar替换原来的jar即可。

这个不提供配置文件之类的东西吗,或者做个插件。只能重新打包吗?


这方法可行。我也发现,在struts2 内置的params 拦截器前加自定义拦截器,自定义拦截器里退出处理(导致后面的拦截器无法正常执行,例如跳转到另外的action)时就不会出现这个问题。
当然也可以设置过滤字符,但改动比较大。为了解决这问题每人都下载xwork源码编译也不方便,根据上面兄弟代码修正好打包了,请见附件(jdk1.5编译,已测试可以解决问题)。

目前修正这个类是最简单方便的方法(个人认为)
1 请登录后投票
   发表时间:2010-07-26  
唯快不破 写道
用urlrewrite应该也能防住吧?

说说具体的想法呗,大家讨论下。
0 请登录后投票
   发表时间:2010-07-27  
love_ai87 写道
这个漏洞很强大啊,直接调操作系统命令,ms比spring的那个更强大

这不是强大,是恐怖
0 请登录后投票
   发表时间:2010-07-27  
这个漏洞虽然恐怖,但是补救的方式还是挺简单的,如果依靠这个漏洞可以获得webshell那真就很危险了。
0 请登录后投票
   发表时间:2010-07-27  
补救简单,就是不知道以后还会不会有其他漏洞出现。
1 请登录后投票
   发表时间:2010-07-28  
ming123 写道
补救简单,就是不知道以后还会不会有其他漏洞出现。

漏洞是不可避免的,这也符合软件开发中的理论,不会出现没有bug的代码。
0 请登录后投票
   发表时间:2010-07-30  
微软都有那么多bug,更何况struts2.就看有没有无聊的人。
0 请登录后投票
   发表时间:2010-07-30  
bug了失控了大家关注了,说明框架步入发展正轨了.如果一个框架很久都没出bug,要么完美了要么被抛弃了
0 请登录后投票
   发表时间:2010-08-01  
KimShen 写道
bug了失控了大家关注了,说明框架步入发展正轨了.如果一个框架很久都没出bug,要么完美了要么被抛弃了

不会有完美的框架吧
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics