首页 > 安全 > 系统安全 > 正文
Android App常见安全问题演练分析系统-DIVA-Part2
2017-05-13       个评论      
收藏    我要投稿

Android App常见安全问题演练分析系统-DIVA-Part2

APK下载:http://payatu.com/wp-content/uploads/2016/01/diva-beta.tar.gz

源代码下载:https://github.com/payatu/diva-android

前一部分我们讨论了不安全的日志输出、硬编码问题和不安全的数据存储。这一部分我们继续讨论android app中其它的常见安全问题。

VII. 问题4 :输入验证问题

在APP中点击“7. INPUT VALIDATION ISSUES – PART 1”。如果你知道用户名,你就能取得与之相关的数据。我们的目标是在不知道用户名的情况下获取所有的数据。点击之后你会看到下面的activity页面。

\

由于它具有搜索功能,我的第一个假设是应用程序可能会根据用户输入从数据库中搜索某些内容。会存在SQL注入漏洞么???我们需要测试一下。这次我们来做一个黑盒测试而不是先看代码。让我们输入一个单引号,看看应用程序的响应。

\

看起来没有什么反应,但是在logcat中我找到了下面的条目。

\

好消息!可能存在SQL注入。从上面的错误可以看出,程序使用SQL查询从SQLite数据库中获取信息,而我们输入的单引号造成语句中单引号没有配对,从而出错。我们再加一个单引号,看看app有什么反应。

\

看起来程序正在搜索输入的数据,没有产生SQL错误。为了进一步确认,我们再加一个单引号,看看是否会引发SQL错误。

\

logcat中再次看到了下面的结果。

\

完美!现在确认了SQL注入,奇数个单引号会导致SQL错误,当引号刚好匹配时SQL查询正好会执行。下一步呢?我们使用一个总是返回true的字符串来得到数据库中的数据。

1

1’ or ‘1’ != ‘2

\

如图所示,通过执行恶意的SQL查询我们能够得到应用数据库中的所有数据。下面是导致问题的SQLInjectionActivity.class中的一部分代码。

\

下面这句代码正是导致问题的罪魁祸首,app接收了用户的输入,没有经过验证就直接加入到SQL查询语句中。

1

cr = mDB.rawQuery("SELECT * FROM sqliuser WHERE user = '" + srchtxt.getText().toString() + "'", null);

在app中点击“8. INPUT VALIDATION ISSUES – PART 2”。这个activity的功能是显示用户输入的网页。如图,当你输入www.baidu.com它会使用一个webview去加载这个页面。

\
\

我们的目标是使用此功能访问设备上的敏感信息。先来看看它的源代码,在InputValidation2URISchemeActivity.java中。

\

程序使用loadUrl方法加载用户输入的URL,这个方法也可以加载本地文件。我们创建一个1.txt,在里面写上123。

\

把这个文件传到sdcard上。

\

使用file:///格式来读取文件。

\

成功读取了文件内容。

在app中点击“13. INPUT VALIDATION ISSUES – PART 3”。这个程序要求输入一个密码,我们的目标是在不知道密码的情况下让程序崩溃。

\

我们一次性多输入一些字符串,程序就会崩溃并退出。我输入了一串a,现在让我们用adb logcat命令查看在logcat中是否有对我们有用的信息。

\

从上面logcat中可以看出,很显然崩溃是因为CPU试图跳转到61616160地址处发生的,a的ASCII值就是0x61。我们来看看InputValidation3Activity.java中的源代码。

\

这个校验是在native层做的,来看看divajni.c。

\
\

Buffer的大小是20,由于strcpy函数缺少边界检查导致缓冲区溢出,程序崩溃。理论上来讲这个漏洞还可以继续进一步利用,如果大家有兴趣深入研究的话可以参考这篇文章ARM栈溢出攻击实践:从虚拟环境搭建到ROP利用。

点击复制链接 与好友分享!回本站首页
上一篇:关于Android应用程序漏洞的防护措施
下一篇:WannaCry2.0已能通过Wine感染Linux系统
相关文章
图文推荐
文章
推荐
热门新闻

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站