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并启动

[/crayon]
可以看到

[/crayon]

搭建漏洞环境

进入docker

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

运行

[/crayon]
修改/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文件如下

[/crayon]
重启服务

[/crayon]

复现

访问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大佬提供)

[/crayon]
拆分

[/crayon]

感谢

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

From : i春秋

本文由 孤独常伴 作者:孤独常伴 发表,其版权均为 孤独常伴 所有,文章内容系作者个人观点,不代表 孤独常伴 对观点赞同或支持。如需转载,请注明文章来源。

1

发表评论