freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

我是如何找到Donald Daters应用数据库漏洞的
2018-11-13 13:00:20

前言

星期一的晚上像往常一样我通过观看电视节目来打发时间,但并没有什么有趣的节目。于是我决定在手机上寻找乐趣,我开始漫无目的在Twitter上翻看各种推文,一条Fox News的推送内容引起了我的关注。

Fox新闻

有人为特朗普的支持者开发了一个名为“唐纳德约会者”(Donald Daters)的软件,并配以“让美国人再次约会”的响亮口号!这顿时激起了我的斗志,我决定拿它来练练手~

初步侦察

我立马从PlayStore下载了这个应用程序,并以普通使用者的身份对它的可用功能进行了初步的了解。

这是一款约会app,通过对象匹配的方式与陌生人进行对话。

静态分析

1)首先,我将APK文件从我的手机导入到了电脑上。你可以使用这款软件来帮助你完成这个过程。

2)APK是一个ZIP文件,解压缩并提取DEX文件。

3)你可以使用jadx这款工具,从提取的DEX文件中获取反编译的源码。

4)使用apktool获取应用程序的resources文件。

一切准备就绪,现在让我们来分析这些获取的文件,通过查看AndroidManifest.xml文件,我们可以知道:

该应用当前使用的是Firebase数据库;

这是一个React Native应用程序,com/donalddaters文件夹几乎为空可以证明这一点。这种应用程序的代码位于assets/index.android.bundle文件中;

该应用会要求授权许多敏感权限。

接着,我查看了values/strings.xml文件。

alues/strings.xml文件

可以看到ID和密钥都被硬编码在了该文件中。此外,我们还可以看到他们正在使用Firebase数据库。让我们看看他们是否正确配置了数据库。我在Chrome中粘贴访问了https://donalddaters2018.firebaseio.com/.json

配置数据库

他们竟然保留了数据库的开发设置。这意味着任何人都可以访问他们的数据库......现在,我可以查看到数据库中所有用户信息(包括姓名,头像,身份,平台,通知),甚至是使用他们的token,查看所有私人消息等。

该应用仅上线了几小时,因此只有1607个注册用户和128个rooms。 有趣的是,其中最长的一个讨论(62条消息),来自于应用程序开发者之间。

如以下截图中所示,这里有一个指向数据库中用户头像的链接。

用户头像的链接

多亏了这个简单的小脚本,帮我下载了所有可用的头像,我已将部分头像发布在了Twitter上。

这是一小部分配置文件图片。https://t.co/GxIr5Mtf8d

小部分配置文件图片

漏洞利用

我创建了一个新的Android应用并添加了Firebase。具体操作可以参阅本指南

在我的项目中有一个google-services.json文件,其中存储了所有Firebase设置。为了与Donald Daters的Firebase数据库进行通信,我需要找到他们的Firebase设置(api密钥,数据库URL以及storage bucket)并将它们替换到我的google-services.json文件中。

前面我们已从values/strings.xml文件中,获取到了数据库URL和storage bucket。那么,api密钥又在哪获取呢?

在静态分析那部分我提到过,React Native应用程序的代码位于assets/index.android.bundle文件中。让我们来逆向它!

通过使用binwalk,我提取出了一堆的javascript文件。

javascript文件

使用grep命令,我很快就找到了api key。

现在,google-services.json文件中的所有必要设置我们都已填写完成。让我们来创建了一个用于读/写Donald Daters数据库的activity。

读/写Donald Daters数据库

这段代码将会读取数据库的所有“rooms”,即“匹配”。

这里我编写了一个PoC,可用于验证Donald Daters应用程序数据库的脆弱性。有了这个POC,我可以查看所有私人消息 - 用户信息 - 或是删除:消息,用户,甚至是整个数据库中的内容。https://t.co/7doErhzYdY

POC

我是一个有操守的白帽子,但我可以告诉你添加这一小行“myRef.setValue(“”)”,你将会清空整个数据库。

缓解措施

发布应用时,不要使用Firebase数据库的开发设置;

聘请有能力的开发人员,这会带来很大的帮助。

时间线

1)在Twitter上发布

Hi@FoxNews@realDonaldTrump支持者,我可以在5分钟内获取所有注册用户的:名称 - 照片 - 个人消息 - 令牌等。你们应该立即停止它的使用,并修复这个漏洞,https://t.co/72KdNJTrmk

在Twitter上发布

2)相关媒体进行了及时的报道

https://motherboard.vice.com/en_us/article/mbdwb3/the-donald-daters-trump-dating-app-exposed-a-load-of-its-users-data

techcrunch.com/2018/10/15/donald-daters-a-dating-app-for-trump-supporters-leaked-its-users-data/

3)Donald Daters更改了他们数据库的设置

4)报告回复

感谢你的关注和报告!我们已修复了这个安全问题,并正在为DonaldDaters社区的发展持续努力!希望你继续关注我们,第一时间反馈你所发现的问题。再次感谢!https://t.co/EBIOggrh8K

报告回复

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

# 数据库漏洞 # 特朗普 # Donald Daters
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录