在对AEM和CVE-2016-0957有了大致的了解之后,在接下来的章节中,我们将准备给大家描述一下signout.live.com到底出了什么问题。由于AEM调度模块中的“glob”过滤器存在漏洞,再加上AEM Publish节点中存在错误配置,使得攻击者可以在signout.live.com网站中远程执行任意代码。
当时,安全研究人员发现signout.live.com网站上出现了微软Live服务的注销页面,在经过了简单的分析之后,便发现了这个远程代码执行漏洞。
当安全研究人员首次见到这个注销页面时,他们发现该页面的URL地址结构看上去有些可疑,该地址似乎是由AEM生成的。为了证实他们的猜测,安全人员对该页面标签内的HTML代码进行了检查,并在其中发现了大量AEM组件。除此之外,页面内还嵌入了大量Javascript库文件,这也就意味着该页面肯定是由AEM生成的了。
在与Adobe公司的产品安全事件响应团队(PRIST)进行了沟通交流之后,我们便开始对网站进行更加深入地分析,以确定网站是否使用了默认配置的“glob”过滤器。我们通过AEM OSGi的控制台发送了一个带有.css后缀的HTTP查询请求:
https://signout.live.com/system/console?.css
虽然这一请求将会导致HTTP 401错误,但是如果在请求中去掉HTTP查询参数的话,服务器就能够响应并处理我们的请求了。我们的猜测也就得到了证实,我们的确可以利用上述的方法成功绕过AEM的调度过滤器。
漏洞报告
安全研究人员于2015年12月3日将有关该漏洞的详细信息报告给了微软公司的安全应急响应中心(MSRC),响应中心在二十四小时之内确认了这一漏洞,并分派了专职人员负责跟进这一漏洞。在与安全应急响应中心的技术人员进行了不断地沟通之后,该漏洞于2016年5月3日正式被修复。
不幸的是,MSRC在2016年5月4日确认,这个漏洞并不符合微软在线服务漏洞奖励计划的标准和要求,所以发现并报告该漏洞的安全专家也就无法获得漏洞奖金了。
也许,这就是生活!