Struts 2 远程代码执行漏洞
一:前言
Struts 2是一个基于MVC设计模式的Web应用框架,本质上相当于一个Servlet,在MVC设计模式中,Struts2作为控制器来建立模型与视图进行数据交互。
Struts2-045漏洞影响范围极大,设计到Struts2.3.5~Struts2.3.31,Struts2.5~Struts2.5.10等多个版本。漏洞编号S2-045 CVE编号(CVE-2017-5638)
攻击者通过发送恶意构造的HTTP数据包利用该漏洞(通过构造HTTP请求头中的Content-type)在服务器上执行系统命令,进一步完全控制该服务器,造成拒绝服务,数据泄露,网站篡改等后果。
该漏洞无需任何前置条件(如开启dmi,debug等功能),以及启用任何插件,危害较为严重。
二:创建靶机
这里使用Vulhub创建靶机
/
创建成功之后在本机打开网站界面如下图所示
三 :测试靶机
在
执行下载好的exp(python2环境)
可以看出此时的用户为root,真实情况下一般都是Apache用户,不需要提权,可以执行任何命令
四:防范方法
打补丁可以,可能会出现其他的问题,建议直接下载最新版本的软件替换
下载解压缩后,替换到网站的原位置即可