BlackHat 2018 | 看Orange Tsai如何利用四个Bug实现亚马逊协同平台的RCE漏洞
作者:网友投稿 时间:2018-08-24 21:16


以下是他的详细技术分享:
背景说明在过去两年时间里,我重点在研究一些“不一致(inconsistency)”的安全问题,这是什么问题呢?这就有点类似我去年在 Black Hat 的演讲以及《GitHub SSRF to RCE》的研究一样,我先通过发现URL解析器和URL获取器之间的不一致问题,形成了整体SSRF绕过,最终实现更严重的漏洞利用。
另外,这篇由@0x09AL写的文章《Bypassing Web-Application Firewalls by abusing SSL/TLS》,也详细阐述了 “不一致“ 安全问题导致的重要漏洞,值得拜读。
有了之前的基础,今年我着重研究了路径解析器和规范化之间的不一致安全问题。理论上来说,因为不同对象实体具备不同的标准和实现需求,所以很难开发出一款设计严格而全面的解析器。但当解析器出现安全Bug时,为了不影响业务逻辑,研发上通常的做法是采用某种替代方法或是增加某种过滤器,而不是直接给Bug打补丁,最后的影响是治标不治本。所以,这样一来,如果过滤器和调用方法之间存在任何不一致问题,就可能轻松绕过系统本身设置的安全机制。
当我在阅读一些漏洞分析报告时,我注意到了一种叫”URL路径参数“( URL Path Parameter)的功能特性。一些研究人员已经指出,如果编程出现错误,这种特性可能会导致安全问题。通过点点滴滴的关联分析,我发现这种特性可以完美地应用在多层体系结构中,而且默认情况下,不必编码出错,就存在攻击面,可导致漏洞利用。如果你在反向代理中使用了Java后端服务,那么就可能存在这种漏洞!
早先在2015年时,我首先是在一次红队测试中发现了这种攻击面,之后,我觉得这个问题威力超强,也想看看安全圈内的知悉面,于是,我就在WCTF 2016比赛的自出题中。
WCTF是由Belluminar和360共同举办的比赛,这与其他CTF比赛中的解题模式(Jeopardy)和攻防模式(Attack-Defense)不一样,它邀请了全球各国的前10名团队,每个团队都需要设计两道挑战题目,所以总共有20个挑战题目。你解题数量越多,你得到的点数就越多。然而,最后却没人能解出我出的这道题目。所以,那时我认为这种技术可能还并不为大多数人知晓。另外,我也对DirBuster、wFuzz、DirB 和 DirSearch这些扫描器作了测试,但只有DirSearch在2017年5月加入了这种扫描规则。
因此,今年我打算分享这个议题。但为了说服Black Hat 的审查委员会,我需要有力的用例支撑。所以,我又重拾挖洞,然而在测试中我发现,这种攻击面不仅可以造成敏感信息泄露,还能绕过访问控制列表(像我发现的这个优步OneLogin登录绕过漏洞),在某些漏洞众测项目中还能导致远程代码执行(RCE)。在这篇文章中,我就来介绍,利用这种 “不一致” 攻击面问题,综合4个功能Bug,实现对亚马逊协同平台的远程代码执行(RCE)。
多层架构的不一致性,可以形象的用以下图片来表示:


首先,感谢亚马逊(Amazon)开放的漏洞披露策略,与亚马逊安全团队Nuxeo的合作非常顺畅,仅从漏洞上报进程来看,就可以看出亚马逊快速的漏洞响应速度,以及他们积极的应对措施。
开始我们要从网站 corp.amazon.com 说起,这貌似是亚马逊的一个内部协同系统,从网站的底部版权信息来看,该系统由开源项目Nuxeo部署构建。而Nuxeo又是一个庞大的Java项目,且刚开始我只是想提高一下我的Java审计技术。所以故事就从这里说起吧!
四个漏洞(Bug)


