【威胁预警】Apache Struts2远程代码执行漏洞(S2-053)

2017-09-07 16:32:44 启明星辰 ADLab

更多资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn)


漏洞描述

2017年9月7日,Apache Struts发布最新的安全公告(S2-053),漏洞级别为中危,CVE编号为CVE-2017-12611。Apache Struts2 Freemarker标签如果被错误的配置和使用导致RCE远程代码执行漏洞。

相关链接如下:

https://cwiki.apache.org/confluence/display/WW/S2-053


漏洞分析

如果使用如下方式配置Freemarker标签,标签内容是用“${}”这种方式解析,会被直接带入到OGNL中执行造成远程代码执行漏洞,尤其redirectUri其内容通过Request方式获取,可被直接远程攻击。

<@s.hiddenname="redirectUri" value="${redirectUri}" />

建议使用正确的Freemarker标签配置,可避免该漏洞产生。如下为官方建议的安全配置方式:

<@s.hiddenname="redirectUri" value=redirectUri />


受影响版本

Apache Struts Version:Struts 2.0.1 - Struts 2.3.33, Struts 2.5 -Struts 2.5.10


不受影响版本

Apache Struts Version:Struts2.5.12 or Struts 2.3.34


规避方案

  • 使用如下方式配置Freemarker标签,慎重使用“${xxx}“这种形式的标签<@s.hiddenname="redirectUri" value=redirectUri />

  • Freemarker标签内容不要通过Request方式获取 

  • 对于重要应用推荐使用源码审计的方式进行人工和自动化审查