前言
Struts使用的Jakarta解析文件上传请求包不当,当远程攻击者构造恶意的Content-Type,可能导致远程命令执行。并且jakarta默认是开启的
实际上在default.properties文件中,struts.multipart.parser的值有两个选择,分别是jakarta和pell(另外原本其实也有第三种选择cos)。其中的jakarta解析器是Struts 2框架的标准组成部分
影响版本
Struts 2.3.5 - Struts 2.3.31, Struts 2.5 - Struts 2.5.10
环境搭建
使用vulhub和docker安装环境
cd vulhub/struts2/s2-045
docker-compose up -d
访问http://your-ip:8080即可看到上传页面。