看我如何发现苹果公司官网Apple.com的无限制文件上传漏洞

在前几篇文章中,我分享了亚马逊网站XSS漏洞和Bol.com的开放重定向漏洞,今天我再和大家聊聊不安全的服务器配置问题,很多时候,服务器的错误配置将会导致一些列目录或无限制文件上传漏洞。就拿我前久遇到的一个安全测试为例吧,目标网站绝对算得上是牛轰轰的大牌公司,Apple.com,对,你没看错,是苹果公司,我就发现了其网站的一个无限制文件上传漏洞。

最后,我也因此测试漏洞收获了苹果官方不菲的赏金,以及漏洞名人堂的入榜致谢。好吧,我们一起来看看这个苹果官网的无限制文件上传漏洞。

目标踩点

先冲杯咖啡,然后启动子域名探测程序 Aquatone,Aquatone算是一个前期侦察利器了,它能通过开源信息和字典方式最大范围地识别出目标网站存在的子域名站点。

Aquatone 具备四种不同命令执行功能:

1. Aquatone-discover: 从开源信息中查找目标网站相关的不同子域名或常见子域名; 2. Aquatone-scan: 针对Aquatone-discover结果中的不同子域名网站进行端口扫描; 3. Aquatone-gather: 为每个子域名网站创建快照,并形成最终的一份HTML报告。 4. Aquatone-takeover: 尝试查找由外部主机或服务托管的一些非活动的,也即目标网站已经废弃不在用的子域名。如果找到这么一个子域名,你可以通过重新续费注册再次接管它,实现间接劫持,上报之后坐等收赏金。这就有一批EdOverflow大牛以此种方式实现域名劫持的案例。

等待识别结果

通常来说,Aquatone的识别过程需要十多分钟的时间,扫描、探测、验证、报告成型。最终,这里的Apple.com前后怕用了差不多半小时,最后对1万多台主机进行了扫描,生成了多达84份的HTML报告。

难道我是第一个用Aquatone扫描Apple.com官网的人吗?当然不是。估计也怕没人认真看完这84份HTML报告。那我们就从第50份报告开始吧,来认真分析一下最后的34份报告。

寻找异常

用了50多分钟的时间,我仔细看了看这34份报告,想尝试从中发现一些蛛丝马迹。正巧,在其中一份子域名网站报告中发现了苹果公司使用了多个 AWS S3 云存储服务来托管文件,如果我们能获得其中一个这些S3存储桶(bucket)的访问权限,就能间接实现对其涉及的 Apple.com 子域名网站劫持。

要认真读完所有Aquatone 生成的84份HTML报告可谓相当之无聊,那我们就采取点不一样的方式吧。所有HTML报告中都包含了一个服务器发送过来的头信息,而且,S3存储桶也会发送个名为 X-Amz-Bucket-Region 的头消息,那我们就来在报告中尝试查找一下这个头消息字段。

现在,我们就一一手动来打开这些涉及 S3存储桶(bucket)的子域名试试,访问相应链接之后,几乎所有这些子域名网站都会返回一个拒绝访问(Access denied)的响应。

测试目标

经过一遍手动访问之后,只有子域名网站 http://live-promotions.apple.com 响应的内容不同,其响应页面中包含了S3 bucket 的名称和目录信息。

现在,有了 S3 bucket 的名称之后,我们可以尝试来连接它试试看,具体 S3 bucket 连接方法可以参照这里 - aws。

我们需要安装 AWS 的命令行界面程序,然后根据上述响应页面中的 S3 bucket 名称进行远程连接。

安装好命令行界面程序之后,知道 S3 bucket 名称,那我们尝试看看能否上传些东西到上面,就传个钓鱼页面上去试试看看解析情况:

aws s3 cp login.html s3://$bucketName —grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers

OK,竟然可以,还能成功解析,GOD:

漏洞影响

可以往存在漏洞的 live-promotions.apple.com 网站上传一个钓鱼页面; 可以窃取用户的子域共享Cookie信息; 可以从 S3 bucket 中获取到一些敏感文件信息,其中包含有 xcode 项目相关的东西。

总结

现在,我们就对这个苹果公司的子域名网站有了完整了读写控制权了,配合上述那个完美的能以假乱真的钓鱼页面,足可以实现针对苹果用户的密码或Cookie信息窃取。对这个漏洞的解决方法,也就是要对 S3 bucket 进行严格的安全加固,具体可以参照AWS的访问控制策略。

漏洞上报进程

2018-6-19 发现并向苹果官方上报漏洞 2018-6-19 苹果官方确认漏洞 2018-6-19 苹果安全团队修复漏洞 2018-6-22 苹果将我列入漏洞致谢名人堂 当然我也获得了不菲赏金

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

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-07-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT大咖说

聊聊容器调度框架,看又拍云如何基于mesos实现

摘要 为了更好地完成云处理服务的负载均衡, 零停机升级, 自定义策略调度等功能, 又拍云用 Go 实现了自己的容器调度框架, 管理长期服务和定时任务。 嘉宾演讲...

42811
来自专栏梧雨北辰的开发录

iOS提交审核失败:通知“has changed to Invalid Binary.”错误

2016-11-09 今天在App提交审核的时候遇到了一个问题,打包上传到itunes Connect的过程都没有问题,但是之后在itunes Connect的...

3667
来自专栏dotnet & java

不要使用Resource Owner Password Credentials

最近公司项目在做一些重构,因为公司多个业务系统各自实现了一套登录逻辑,比较混乱。所以,现在需要做一个统一的鉴权登录中心,准备用IdentityServer4来实...

1124
来自专栏无原型不设计

聊聊原型设计中的团队管理功能

在Mockplus3.3版本中,新增了团队管理功能,可以对团队成员、团队项目进行分组管理、权限设定。在团队成员管理上,可以编辑企业信息、邀请/删除团队成员、设置...

3607
来自专栏架构师之路

数据库软件架构设计些什么

缘起:受@萧田国 萧总邀请,上周五晚上在“高效运维1号群”内分享了《58同城数据库软件架构设计与实践》(这个topic今年在数据库大会上分享过),应组织方要求,...

37211
来自专栏杨建荣的学习笔记

关于ssh命令的几个使用小技巧(r11笔记第27天)

ssh命令其实用了些日子了,但是感觉长进不大,主要原因是对它不够了解。 我想绝大多数的系统环境我还是使用ssh的方式会多一些,就这样看起来小米加步枪的工作方式,...

3689
来自专栏开源项目

揭秘互联网防火墙核心技术 | 码云周刊第 55 期

在日益复杂的互联网活动中,一个网络防火墙扮演着防备潜在的恶意的活动的屏障,并可通过一个”门”来允许人们在你的安全网络和开放的不安全的网络之间通信。今天,小编推荐...

3203
来自专栏数据库新发现

Sun Cluster工作原理介绍(转)

本章的结构安排是以介绍Sun Cluster中重要的概念为主线。相关的工作原理分布在各个概念的介绍之中。     quorum的概念在分布式系统中经常被用到。...

883
来自专栏DevOps时代的专栏

维护了这么久的服务器,你真的认识 Web 缓存体系?

前言 很高兴认识大家,之前做过很多分享,今天这次终于讲到正题了。因为之前一直讲自动化运维,其实做这么多年运维,自动化运维没干多少年。这几年很多公司各方面机器数量...

3458
来自专栏无原型不设计

聊聊原型设计中的团队管理功能

在Mockplus3.3版本中,新增了团队管理功能,可以对团队成员、团队项目进行分组管理、权限设定。在团队成员管理上,可以编辑企业信息、邀请/删除团队成员、设置...

1K6

扫码关注云+社区

领取腾讯云代金券