Apache Struts2(S2-052,CVE-2017-9805)再曝远程代码执行高危漏洞
laoyan 2017-09-11 09:34:16
分 享

漏洞简介


   Apache Struts2是Apache基金会发布的一款实现了MVC模式的中间件软件,广泛应用于Web开发和大型网站建设。


   Apache Struts 2.5 - Struts 2.5.12版本的REST插件存在远程代码执行漏洞(S2-052,CVE-2017-9805)。当Struts2通过REST插件使用XStream的实例xstreamhandler处理反序列化XML有效载荷时没有进行任何过滤,导致远程攻击者可以利用该漏洞构造恶意的XML内容,进而获取业务数据或服务器权限,执行任意代码。Apache官方漏洞简述:


Apache Struts2(S2-052,CVE-2017-9805)再曝远程代码执行高危漏洞01.png


漏洞编号


S2-052
CVE-2017-9805


漏洞影响


 Apache Struts 2.5 - Struts 2.5.12版本以及2.3.33版本受该漏洞影响


漏洞等级


高危


漏洞利用


Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,导致远程代码执行。


    截止发稿时间,公网已经暴露多个漏洞利用 PoC,随机选取PoC如下:  


Apache Struts2(S2-052,CVE-2017-9805)再曝远程代码执行高危漏洞02.png


在本地搭建struts-2.5.12版本环境,在环境中访问http://x.x.x.x:8080/struts2-rest-showcase,并在请求数据中植入编辑好的PoC,可看到成功执行 “calc.exe” (计算器程序)命令,如下图所示 :


Apache Struts2(S2-052,CVE-2017-9805)再曝远程代码执行高危漏洞03.png



解决方法


1、升级Apache Struts 版本到2.5.13 或者 2.3.34,链接如下:


https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.13
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.3.34


【注】新版本使用的默认限制策略会导致REST的一些函数停止工作,会对一些业务造成影响,建议使用以下新的接口:


    org.apache.struts2.rest.handler.AllowedClasses
    org.apache.struts2.rest.handler.AllowedClassNames
    org.apache.struts2.rest.handler.XStreamPermissionProvider


2、如果无法升级,可临时停止使用REST插件


3、如果无法升级,可临时限制服务端扩展类型


<constant name="struts.action.extension" value="xhtml,,json" />


参考链接


https://cwiki.apache.org/confluence/display/WW/S2-052
http://www.cnnvd.org.cn/web/bulletin/bulletinById.tag?mkid=94
http://sec.sangfor.com.cn/events/100.html


我要小额支持下

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

取消
吐槽一下

游客

所有吐槽
  • 暂时还没有吐槽,赶紧来吐槽!