Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

【系列分享】安卓Hacking Part 19:NoSQL数据库不安全的数据存储

$
0
0
【系列分享】安卓Hacking Part 19:NoSQL数据库不安全的数据存储

2017-03-24 09:59:00
来源:infosecinstitute.com 作者:shan66

阅读:320次
点赞(0)
收藏





【系列分享】安卓Hacking Part 19:NoSQL数据库不安全的数据存储

翻译:shan66

稿费:100RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


前言

在上一篇文章中,我们讨论了不安全的数据存储是如何影响Android应用程序的安全性的。在本文中,我们将继续讨论不安全的数据存储问题,不过这里与数据库密切相关。

当前,NoSQL已经被各个大型公司广泛采用。像谷歌和Facebook这样的巨人也在使用NoSQL来管理他们的“大数据”。当然,NoSQL仍然在肆意蔓延—— NoSQL数据库还可用于移动应用程序。虽然针对Android系统的NoSQL解决方案有多种,但是我们这里仅介绍Couchbase Lite,在Android和iOS平台本地数据存储方面,这是一个非常不错的解决方案。

与前面讨论过的不安全数据存储概念相仿,即使以明文格式保存的NoSQL数据也可以通过各种技术(如“获取root权限的设备”、“备份技术”等)进行访问。本文将通过具体的示例应用程序为大家详细加以演示。


NoSQL演示应用程序的功能

让我们先看看这个应用程序的各种功能。

首先,请启动应用程序,这时将会显示如下所示的屏幕。


【系列分享】安卓Hacking Part 19:NoSQL数据库不安全的数据存储

用户可以在应用中输入卡号,然后点击提交按钮。


【系列分享】安卓Hacking Part 19:NoSQL数据库不安全的数据存储

如果一切顺利,用户将看到一个成功消息,如下所示。


【系列分享】安卓Hacking Part 19:NoSQL数据库不安全的数据存储

查看源代码

在这个示例中,用户输入的数据将存储在表单文档中。

下面的示例代码来自于演示应用程序的代码。

Stringdbname="carddetails"; //createanewdatabase Databasedatabase; try{ database=manager.getDatabase(dbname);//managerisanobjectofManagerclass. }catch(CouchbaseLiteExceptione){ return; } Stringcardnumber=editText.getText().toString().trim(); Map<String,Object>data=newHashMap<String,Object>(); data.put("cardnumber",cardnumber); Documentdocument=database.createDocument(); try{ document.putProperties(data); }catch(CouchbaseLiteExceptione){ }

上面的代码创建了一个HashMap的对象来保存名称-值对。然后,我们创建一个文档,并将数据插入这个文档中。

测试NoSQL数据:

让我们在模拟器中安装目标应用程序,并在其中插入一些样本数据。然后,我们将考察应用程序在哪里以及如何存储我们输入的数据。

就像我们之前所做的那样,先在模拟器上获取一个shell。

键入以下命令,切换至/data/data目录。

cddata/data/

现在,让我们导航到目标包所在的目录。为此,我们可以从AndroidManifest.xml文件中通过APKTOOL找到它。

就本例来说,具体可以运行以下命令。

cdcom.androidpentesting.couchdatastorage

下面,我们运行“ls”命令来查看子目录。

root@generic:/data/data/com.androidpentesting.couchdatastorage#ls cache files lib root@generic:/data/data/com.androidpentesting.couchdatastorage#

虽然这里有许多目录,却没发现名为“databases”的目录。实际上,Couchbase Lite通常会将其数据存储在“files”目录中。

所以,让我们切换到files目录,并检查其中的文件。

root@generic:/data/data/com.androidpentesting.couchdatastorage/files#ls carddetails carddetails.cblite carddetails.cblite-journal root@generic:/data/data/com.androidpentesting.couchdatastorage/files#

我们可以看到扩展名为“.cblite”的文件,这正是我们的目标应用程序所生成的数据库文件。

让我们将这个文件复制到工作站上,以便于进一步深入研究。

root@generic:/data/data/com.androidpentesting.couchdatastorage/files#pwd /data/data/com.androidpentesting.couchdatastorage/files root@generic:/data/data/com.androidpentesting.couchdatastorage/files#

我们可以使用“adb pull”命令将这个文件“推送”到工作站,具体如下所示。

srini'sMacBook:Desktopsrini0x00$adbpull/data/data/com.androidpentesting.couchdatastorage/files/carddetails.cblite 1027KB/s(114688bytesin0.108s) srini'sMacBook:Desktopsrini0x00$

好了,现在我们感兴趣的东西已经到手了。

我们需要一个客户端来查看提取的数据库的内容。

Couchbase Lite Viewer是一个可用于在Mac OSX平台上面查看Couchbase Lite内容的应用程序,其下载链接如下所示:

下载链接(http://resources.infosecinstitute.com/android-hacking-and-security-part-19-insecure-data-storage-with-nosql-databases/#download )

下载完成后,启动程序,打开Couchbase Lite数据库。

这时,Couchbase Lite Viewer就会显示文件的内容,如上图所示。


【系列分享】安卓Hacking Part 19:NoSQL数据库不安全的数据存储

如果你的系统不是Mac的话,可以使用strings命令,具体如下所示。

srini'sMacBook:Desktopsrini0x00$stringscarddetails.cblite|grep'12345' 1-2aa97aff5f838c5af074e497e8a3bd8f{"cardnumber":"12345"} srini'sMacBook:Desktopsrini0x00$

如果您在windows机器上无法使用字符串命令的话,可以使用Hex-Editor软件。


传送门

安卓 Hacking Part 1:应用组件攻防(连载)

安卓 Hacking Part 2:Content Provider攻防(连载)

安卓 Hacking Part 3:Broadcast Receivers攻防(连载)

安卓 Hacking Part 4:非预期的信息泄露(边信道信息泄露)

安卓 Hacking Part 5:使用JDB调试Java应用

安卓 Hacking Part 6:调试Android应用

安卓 Hacking Part 7:攻击WebView

安卓 Hacking Part 8:Root的检测和绕过

安卓 Hacking Part 9:不安全的本地存储:Shared Preferences

安卓 Hacking Part 10:不安全的本地存储

安卓 Hacking Part 11:使用Introspy进行黑盒测试

安卓 Hacking Part 12:使用第三方库加固Shared Preferences

安卓 Hacking Part 13:使用Drozer进行安全测试

安卓 Hacking Part 14:在没有root的设备上检测并导出app特定的数据

安卓 Hacking Part 15:使用备份技术黑掉安卓应用

安卓 Hacking Part 16:脆弱的加密

安卓 Hacking Part 17:破解Android应用

安卓 Hacking Part 18:逆向工程入门篇



【系列分享】安卓Hacking Part 19:NoSQL数据库不安全的数据存储
【系列分享】安卓Hacking Part 19:NoSQL数据库不安全的数据存储
本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:http://resources.infosecinstitute.com/android-hacking-and-security-part-19-insecure-data-storage-with-nosql-databases/

Viewing all articles
Browse latest Browse all 12749

Trending Articles