S2 – 057 漏洞复现-孤独常伴

漏洞信息

定义XML配置时如果namespace值未设置且上层动作配置(Action Configuration)中未设置或用通配符namespace时可能会导致远程代码执行。

url标签未设置value和action值且上层动作未设置或用通配符namespace时可能会导致远程代码执行。

解决方案

升级至版本2.3.35或2.5.17。这两个版本仅仅只是更新了安全补丁,不存在兼容性问题。

漏洞详情

由于漏洞作者已经发布 就不再复制粘贴 请看链接
原作者 英语 除漏洞详情还介绍了他是如何发现这些漏洞的
漏洞细节中文翻译

复现

搭建struts2

使用docker-composevulhub搭建
如果没有docker
curl https://get.docker.com/ | bash
pip install docker-compose
克隆vulhub并启动

可以看到

搭建漏洞环境

进入docker

docker exec -i -t <你上面显示的CONTAINER ID > /bin/bash

运行

修改/usr/local/tomcat/webapps/struts2-showcase/WEB-INF/classes/struts-actionchaining.xml/usr/local/tomcat/webapps/struts2-showcase/WEB-INF/src/java/struts-actionchaining.xml文件如下

重启服务

复现

访问127.0.0.1:8080/struts2-showcase/${(111+111)}/actionChain1.action
会显示到了127.0.0.1:8080/struts2-showcase/222/actionChain1.action

将${(111+111)}替换成expexp  (由jas502n大佬提供)

拆分

感谢

https://www.anquanke.com/post/id/157397
https://github.com/jas502n/St2-057
https://lgtm.com/blog/apache_struts_CVE-2018-11776

From : i春秋