投递人 itwriter 发布于 2018-05-17 10:00 原文链接 [收藏] « »

  本文中我描述了在某漏洞赏金邀请项目中,在前期侦察踩点阶段就发现 Uber 子域名劫持漏洞的一个案例,漏洞原因由于 Uber 在暂停 AWS 服务后,未及时删除 CNAME 域名记录所致。

  刚踩点就有所发现

  首先,我用来测试子域名漏洞的工具是 Aquatone(洛克希德 U2 侦察机代号也叫这个),这个工具非常好用,可算是众多白帽的必备利器了。非常幸运的是,我不经意地用它来测试目标,就有了发现,真像是中了头奖!

  在运行了命令 aquatone-takeover –domain {{target}}.com 之后,我就发现了目标网站某个架设在 AWS 上的子域名存在可劫持漏洞。一开始,我倒不觉得兴奋,因为大多数 CNAME 记录域名,一般都是目标测试公司仍然在用的,这样的子域名当然也就不存在可申请注册的可能。但是,我仔细分析后发现,目标公司好像是暂停了 AWS 服务,真的忘记把 CNAME 域名记录删除了,而且,我还能申请注册其 CNAME 域名!

  漏洞原理分析

CNAME:别名记录。这种记录允许您将多个名字映射到另外一个域名。如 WWW 和 MAIL 对应的 CNAME 域名可以是 www.mydomain.com 和 mail.mydomain.com。但实际上他们都是指向 host.mydomain.com。这里的 cloundfront.net 样式的 CNAME 域名就是指向 Uber 公司的 uber.com 域名。

  这里的子域名劫持原理是这样的,就是 Uber 公司使用了亚马逊 AWS 的服务后,由于后期暂停取消了 AWS 服务,但是却忘记了及时删除 cloundfront.net 样式的 CNAME 域名记录指向,此时,这个 CNAME 域名就存在可被别人注册的风险,恶意攻击者通过注册该域名,配合未删除的 CNAME 记录,就能实现对原先 uber 的子域劫持。

  漏洞测试

  当然,Uber 已经在用的域名肯定不能申请,我们的目标是 cloundfront.net 样式的 CNAME 域名。这里有一个简单快捷的子域名劫持验证方法,那就是在上图的两组对应域名中,分别用 http 和 https 协议来测试打开,如果最终两者返回的错误响应一致,那么可以初步判断存在子域劫持可能。

  如果存在子域名可申请注册可能,为了不影响目标测试公司的声誉,那么最好是把你自己的测试页面放到网站的非根目录/下。我申请注册了上述 cloundfront.net 样式域名,并把我的一个简单的 HTML 测试 PoC 页面指向了其域名解析,如下:

  很好,毫无疑问地实现了子域名劫持测试。我把这个漏洞上报给 HackerOne 之后,他们非常重视,在 4 天内就给予了漏洞修复和回应。然而,比较有意思的是,在我进行子域名劫持测试期间,由于具备对该子域的管理权,所以也从后台却收集到了一些不可思议的数据。

  竞争异常激烈的众测领域

  上图流量分析中,可以看到总共有 1200 多个请求测试,很多网络行为貌似都是白帽黑客对网站进行的漏洞探测,其中包含了大量的各种目录测试枚举、XSS 测试、开放重定向验证等。由此可以反映出,我们的漏洞赏金项目也是竞争激烈啊,还好,我有幸参与的是不那么竞争惨烈的邀请项目,而且非常走运地发现了这个漏洞。

  最终,由于该漏洞涉及的子域名可以在其中设置有效的 cookie 信息,存在很高的安全隐患,因此,获得了项目发起方$4500 美金的奖励。

  漏洞上报进程

2018. 4.12   漏洞上报分类

2018. 4.16   漏洞修复

2018. 5.3    $4500 赏金发放

  参考来源:medium,FreeBuf 小编 clouds 编译,转载请注明来自 FreeBuf.COM

 
来自: www.freebuf.com
找优秀程序员,就在博客园 收藏 新浪微博 分享至微信
标签: 程序员

24小时阅读排行

    最新新闻

      相关新闻