漏洞详情:
Apache Struts2是Apache项目下的一个web 框架,帮助Java开发者利用J2EE来开发Web相关应用。
Apache Struts2的Jakarta Multipart parser插件存在远程代码执行漏洞,攻击者可以在使用该插件上传文件时,修改HTTP请求头中的Content-Type值来触发该漏洞,导致远程执行代码。
影响版本:
Struts 2.3.5 – Struts 2.3.31
Struts 2.5 – Struts 2.5.10
漏洞判定:
一、是否受影响版本。
漏洞验证:
一、环境搭建
靶机参数:Centos8.1
靶机配置:Docker
靶机容器:vulhub/struts2:2.3.28
攻击机参数:Kali(或安装有msfconsole的任意Linux/Windows操作系统)
从docker仓库中获取受影响版本的Struts2:
靶机Docker中下载受影响的Struts2容器:
docker pull vulhub/struts2:2.3.28
靶机Docker中部署容器Struts2,并将Struts2的8080端口绑定到本机的7080端口上:
docker run -tid -p 7080:8080 vulhub/struts2:2.3.28
结果验证:
二、漏洞复现
打开msfconsole并搜索CVE模块:
search CVE-2017-5638
加载模块并查看模块参数:
配置参数:
执行并反弹Shell:
漏洞修复及建议
一、修复方式: 升级Apache Struts版本至 2.3.32 or 2.5.10.1以上。
二、修复建议:在网络防护设备上配置过滤包含如下:
**#nike='multipart/form-data' **
以及
#container=#context['com.opensymphony.xwork2.ActionContext.container'
字段串(及相关字符转义形式)的URL请求。
版权归原作者 幻梦聚沫散 所有, 如有侵权,请联系我们删除。