在这篇文章中,我将跟大家分享我的一次挖洞经验,希望大家能够喜欢,如果你有任何的疑问或者建议,请大家直接通过电子邮件与我联系([email protected])。:D

1.png

看我如何通过简单的错误配置“挖洞”BBC新闻网

-目标:BBC-Twitter/Facebook/官网

-漏洞:错误配置

-严重程度:10级

-漏洞状态:已修复

-漏洞奖励:N/A

接下来,我将跟大家描述我如何入侵了BBC的开发者门户网站,并控制了2500个API。需要提醒大家的是,这些API不仅覆盖了移动端应用程序以及BBC网站(包括bbc.co.uk以及bbc.com)的相关功能,而且还涉及到BBC无线广播电台的运作。

挖洞过程

我跟我的朋友Derp当时一起参与了一个漏洞奖励计划,我们的计划是找到一个目标并尝试实现子域名接管。也就是说,我们当时想尝试一下是否能够接管BBC的任意子域名。于是乎,我们首先使用了Ahmed Aboul-Ela (@aboul3la)的脚本(Sublist3r-【脚本下载地址】)来枚举出了bbc.co.uk的子域名。

在Sublist3r脚本的帮助下,我们就可以轻松地枚举出目标域名的所有子域名了。Sublist3r的部分功能如下:它可以利用公开搜索引擎(例如Yahoo、Google和Bing等)以及第三方公开数据库(例如DNSdumpster、Virustotal和ThreatCrowd等)来进行资源搜索。得到了bbc.co.uk的子域名之后(大约730个),我便准备使用SubJack(一款采用Go语言开发的子域名接管工具)来分析这些子域名,但结果并不令人满意。于是接下来,我打算对这些子域名进行手动分析,并尝试找出其中存在的安全漏洞。

我首先用我朋友Corben写的脚本(alive-host:一个简单的bash脚本,使用nmap来判断主机是否活跃)对子域名列表进行了一次扫描。这样不仅进一步缩小了活跃子域名的范围,而且还帮我省下了筛选无效子域名的时间。

在浏览了一部分子域名之后,我发现了几个会以JSON格式输出错误信息的子域名。其中的一条错误信息如下所示:

{"fault":{"faultstring":"Unableto identify proxy for host: default and url:\/v1\/","detail":{"errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"}}}

我对这条错误信息进行了分析之后,我发现他们使用了一款名叫APIgee的第三方API管理软件&分析预测工具,因此我感觉这里也许是我的入手点。

接下来,我又对这些所有能够输出这类JSON错误信息的子域名进行了深入分析,但是扫描了半天我都没有在这些子域名中发现任何可以利用的安全漏洞。所以我最后打算对那些运行了API管理软件的子域名进行测试,我运行了大量的脚本,希望能够找到某些“猫腻”,但结果还是啥也没找到。于是,我只能回头想办法从之前的错误信息下手了:

{"fault":{"faultstring":"Unableto identify proxy for host: default and url:\/v1\/","detail":{"errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"}}}

在错误信息中,下面的内容引起了我的注意:

default and url: \/v1\/

从这部分信息中可以发现,服务器似乎运行了代理来托管目录“/v1/”,但是并没有对其进行安装和配置。于是,我准备访问这个目录(“/v1/”)来看看它会显示什么内容。当我进入该目录之后,服务器返回了如下所示的数据:

[null,"BasicYXBpQGJiYy5jby51azpEVmM3VG5MSm9Z[REDACTED]="]

很明显,服务器返回的数据采用了Base64编码,解码后的信息如下:

api@bbc.co.uk:DVc7TnLJ[REDACTED]

看来我拿到的貌似是某种登录凭证,于是我访问了APIGee并尝试使用我所得到的信息进行登录。你猜怎么着?我不仅成功登录进去了,而且我还是以管理员账号登录上去的,因此我将能够控制BBC所有的API,而这一切都是因为网站服务的错误配置(因为只设置了一个简单的代理)所导致的。由于管理员的输出,这一个小小的错误配置将会使数千名职工的全名、个人电子邮箱、员工ID、以及私人产品&应用面临严重的安全风险。

渗透仪表盘

2.png

3.png

4.png

5.png

6.png

7.png

8.png

9.png

后记

其实说实话,我自己也觉得这个漏洞的发现纯靠运气,但我仍希望给大家提供一些挖洞方面的思路。由于BBC官方想掩盖这个漏洞,所以我在此就不跟大家讨论漏洞的披露过程了。

* 参考来源:daley,FB小编Alpha_h4ck编译