Struts2-057 两个版本RCE漏洞分析(含EXP)
作者:媒体转发 时间:2018-08-28 01:29
2018年8月22日,Apache Strust2发布最新安全公告,Apache Struts2存在远程代码执行的高危漏洞(S2-057/CVE-2018-11776),该漏洞由Semmle Security Research team的安全研究员Man YueMo发现。
该漏洞是由于在Struts2开发框架中使用namespace功能定义XML配置时,namespace值未被设置且在上层动作配置(Action Configuration)中未设置或用通配符namespace,可能导致远程代码执行。同理,url标签未设置value和action值且上层动作未设置或用通配符namespace时也可能导致远程代码执行,经过笔者自建环境成功复现漏洞且可以执行命令回显,文末有你们想要的 !
漏洞利用笔者搭的环境分别是Strust2 2.3.20版本和 Strust2 2.3.34版本,漏洞利用大致分为三种方式:数值计算、弹出计算器、 命令回显。
2.1 数值计算数值计算相对最简单,在URL上指定 %{100+200} 就可以发生跳转,得到计算的结果


2.3.20版本的POC如下:








两个版本都是利用com.opensymphony.xwork2.dispatcher.HttpServletResponse对象去打印命令执行后的回显数据
2.3.20版本的POC如下:






在分析漏洞之前,需要配置struts.xml文件,这个文件就是struts2的核心配置文件,大多数的时候增减配置都需要操控这里;






