Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >App渗透 - Android应用的错误中获取漏洞

App渗透 - Android应用的错误中获取漏洞

作者头像
Khan安全团队
发布于 2021-02-08 03:35:31
发布于 2021-02-08 03:35:31
1.3K00
代码可运行
举报
文章被收录于专栏:Khan安全团队Khan安全团队
运行总次数:0
代码可运行

从该死的不安全和易受攻击的应用程序中获取漏洞

Damn Insecure 漏洞App DIVA是一款漏洞App,旨在教授Android App中发现的漏洞、本文将引导你发现其中的一些漏洞。

步驟一:从这里解压缩DIVA APK档案

步驟二:使用Android Studio软体来设定Android实验室

步驟三:一旦你在模拟器上运行了DIVA应用,如果你想查看这个应用的java格式的源代码,那么在Mac或linux终端上运行jadx-gui

  1. 不安全的日志记录

在Android Studio终端,访问adb命令Absolute Path。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd ~/Library/Android/sdk/platform-tools

现在启动设备仿真器shell:./adb shell

运行ps命令,我可以看到jakhar.aseem.diva的pid是18976

现在要查看diva进程的日志,请运行以下命令。

logcat | grep 18976 或者你可以简单地运行 ./adb logcat

正如我们所看到的那样,这个应用程序正在记录敏感信息,如果其他应用程序有这个设备日志的读取权限,他们可以访问这些信息。

2. 硬编码问题

使用jadx-gui,我可以查看Java格式的apk源代码。请注意其中的硬编码访问密钥。

3. 不安全的数据存储

需要root-设备

在这个应用中,我们可以看到输入的字段细节已经被保存。

如图所示,在Android Studio终端上启动一个root的虚拟设备shell,并访问保存该凭证的/data/data文件夹。

证书保存在shared_prefs目录下。我知道这一点的原因是在它的源代码中(在Jadx-gui中),我可以看到保存证书的地方在源代码中也提到了SharedPreferences。

4. 不安全的数据存储 (2)

对于第二部分,源码显示,这次的凭证存储在SQL数据库中。

在数据库中,有4个文件。在ids2文件内容中发现了密码。

5. 不安全的数据存储(3)

如图所示,保存好凭证后,我查看了java源代码。

如图所示,我们可以看到,创建了一个临时文件来保存凭证。

这个临时文件是在/data/data/jakhar.aseem.diva目录下创建的。

6. 不安全的数据存储(4)

在这个任务中,当我试图保存我的凭证时,它说,'发生文件错误'。

查看源码,注意到应用程序正试图将凭证存储在设备外部存储中。所以检查存储权限,并在设置>应用权限>存储>Diva下授予访问权限。

在允许Diva的存储权限后,我又尝试保存凭证,成功!

现在,在终端中,你可以看到证书被保存在/sdcard/.uinfo.txt中

7. 输入验证问题

该应用程序要求输入一个有效的用户名。如果输入的用户名是正确的,那么应用程序就会显示该用户名密码和信用卡号码。

由于存在输入验证问题,我尝试了一个简单的SQL查询来显示用户凭证。

8. 输入验证问题

在这里,我首先访问了一个网络网址,看看它是否有效。接下来,我再使用file:/协议来访问这个设备中的文件,我就能从不同的位置检索到所有的敏感信息。

9. 访问控制问题

可以通过点击 "查看API凭证 "来查看API凭证。我们面临的挑战是如何从应用程序外部访问API凭证。

运行logcat看看点击'查看API凭证'按钮后会发生什么。我们可以看到这里显示的活动管理器名称和操作。

现在在adb shell中运行以下命令。这将打开应用程序并显示出API证书。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
am start jakhar.asseem.diva/.APICredsActivity

10. 访问控制问题(2)

在这里,我们需要在不知道PIN码的情况下,从应用程序外部访问API凭证(向应用程序注册)。

点击 "已经注册 "为我们提供了API凭证、用户名和密码。

点击 "立即注册 "要求我们输入PIN。现在检查logcat的输出,以便进一步调查。

注意chk_pin的实际值是check_pin

接下来,我们需要禁用PIN来绕过这个要求,并查看API凭证。

从logcat中我们知道活动管理器是jakhar.aseem.diva/.APICreds2Activity

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./adb shell am start -n jakhar.asseem.diva/.APICreds2Activity --ez check_pin false

--n 输入要开展的活动名称

--ez是<数据><boolean>

现在检查你的安卓模拟器,你会发现该应用已经弹开了API凭证,不需要PIN。

11. 访问控制问题(3)

该应用程序要求你创建一个PIN码,然后可以用来访问私人笔记。

使用PIN码,我能够访问私人笔记。

查看.xml和.java源码文件,查找代码缺陷

  • AndroidManifest.xml
  • AccessControl3Activity
  • AccessControl3NotesActivity
  • NotesProvider

从logcat中我们可以看到活动管理器是

jakhar.aseem.diva/.AccessControl3Activity

AndroidManifest.xml显示了内容提供者jakhar.asseem.diva.provider;android:enabled="true "和android:exported="true",这意味着其他应用程序的组件可以访问它。

NotesProvider.java源码揭示了笔记的保存位置

CONTENT_URI

=Uri.parse("content://jakhar.asseem.diva.provider.Notesprovider/notes")

运行下面的命令,让我在android studio终端访问笔记。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./adb shell content query --uri content://jakhar.aseem.diva.provider.notes/notes

12. 硬编码问题(2)

在这个活动中,我想使用逆向工程工具来代替jadx-gui,因为它只能将APK dex文件反编译成java源代码。分析这些源码需要查看库(.so)文件,而jadx-gui不支持。

一旦我们了解了源代码,就很容易驾驭我们寻找厂商密钥的方法。下面是我的两种不同的方法。

使用apktool

运行以下命令从linux终端中提取diva-beta.apk内容。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apktool d diva-beta.apk

接下来,查看libdivajni.so文件的内容,并注意到任何可疑的文本,并在用户输入栏中输入它,看看是否能正常工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
strings arm64-v8a/libdivajni.so
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android App漏洞学习(二)
接上一篇没写完的文章《Android App漏洞学习(一)》,下面继续剩下的几个部分。
信安之路
2018/08/08
6210
Android App漏洞学习(二)
Android App漏洞学习(一)
DIVA(Damn insecure and vulnerable App)是一个故意设计的存在很多漏洞的Android app,目的是为了让开发、安全工程师、QA等了解Android app常见的一些安全问题,类似dvwa,也可以把它当成一个漏洞演练系统。下载地址:
信安之路
2018/08/08
1K0
Android App漏洞学习(一)
APP渗透
jeb 安卓反编译工具,用于逆向工程或审计APK文件,可以提高效率减少许多工程师的分析时间,能将Dalvik字节码反编译为Java源代码
用户2700375
2022/06/09
1.1K0
APP渗透
利用Damn-Vulnerable-Bank学习Android应用程序安全
Damn-Vulnerable-Bank这款Android端应用程序,旨在提供一个接口以帮助广大研究人员都能详细了解Android应用程序的内部细节和安全情况。
FB客服
2021/01/25
7960
利用Damn-Vulnerable-Bank学习Android应用程序安全
如何开始对Android应用的逆向分析?
本文是我的关于如何开始Android逆向系列文章的第一部分。在文末提供了一个文档,你可以根据该文档说明部署同我一样的实验环境。
FB客服
2018/09/21
1.3K0
如何开始对Android应用的逆向分析?
手把手教你使用Ghidra逆向移动应用程序
众所周知,Ghidra是一个免费的开源软件,可以对包括移动应用程序在内的可执行程序(二进制)进行逆向工程分析。Ghidra支持在多个操作系统平台上安装和使用,包括Windows、Linux和MacOS。
FB客服
2021/03/09
5.1K0
手把手教你使用Ghidra逆向移动应用程序
Allsafe:包含安全漏洞的Android研究平台
Allsafe是一款包含大量安全漏洞的Android应用程序,跟其他包含漏洞的Android应用不同,Allsafe的设计更像是那些使用了大量现代库和新型技术的真实应用程序,而且Allsafe的设计理念跟CTF比赛也是不一样的。
FB客服
2021/09/16
8990
MobSF 框架及源代码分析
MobSF,全称(Mobile-Security-Framework),是一款优秀的开源移动应用自动测试框架。该平台可对安卓、苹果应用程序进行静态、动态分析,并在web端输出报告。静态分析适用于安卓、苹果应用程序,而动态分析暂时只支持安卓应用程序。
顾翔
2020/11/04
3.1K0
MobSF 框架及源代码分析
Android 渗透测试学习手册 第三章 Android 应用的逆向和审计
在本章中,我们将查看 Android 应用程序或.apk文件,并了解其不同的组件。 我们还将使用工具(如 Apktool,dex2jar 和 jd-gui)来逆向应用程序。 我们将进一步学习如何通过逆向和分析源代码来寻找 Android 应用程序中的各种漏洞。 我们还将使用一些静态分析工具和脚本来查找漏洞并利用它们。
ApacheCN_飞龙
2022/12/01
1.2K0
APP 安全测试(OWASP Mobile Top 10)–后篇之一
OWASP Mobile Top 10 相对于Web的OWASP Top 10来说,个人觉得描述的相对简单多,并且安全测试的时候的可操作性也不是太强。本来打算个人整体捋一遍的,但因为项目时间的问题,前面四个章节安排给了别人去负责,我只负责后面的六章(所以标题写了后篇)。下面我把个人的测试方法简单叙述一下。下面可能有些测试点不全或者有瑕疵,欢迎纠错。。。。
全栈程序员站长
2022/08/23
1.3K0
APP 安全测试(OWASP Mobile Top 10)–后篇之一
App安全测试
在App项目中都会碰到三座App安全大山。App客户端安全、数据传输安全、App服务端安全。下面以分析检测的思路进行对App安全威胁的这三座大山进行一些剖析梳理总结。
小道安全
2021/09/02
2.5K0
一个灰色APP逆向——初窥千万灰色直播产业
从大约13年开始, 各大直播平台就如雨后春笋般冒出来, 犹记得当初还经常在午休时看DOTA的直播下饭. 后来不知道什么时候开始不再只是游戏直播, 而是一度刮起了女主播打擦边球的歪风邪气, 再后来严厉整顿, 各个平台也才逐渐收敛野蛮的发展, 逐渐步入正轨. 然而, 在阳光照不到的地方, 依然暗流涌动...
Python知识大全
2020/04/01
4.7K0
一个灰色APP逆向——初窥千万灰色直播产业
Android APP性能及专项测试
1、运行Monkey进行压力测试: adb shell monkey -p cn.microinvestment.weitou --pct-touch 100 --ingore-crashes --throttle 1000 -s 100 -v -v 50 2、监控内存值,如果出现过大等递增异常则保存HPROF文件(hprof文件是Java 虚拟机的Heap快照)用于分析查看应用内存的命令: adb shell dumpsys meminfo cn.microinvestment.weitou(进程名) 如果发现内存过大,则保存HPROF文件:adb shell am dumpheap <进程名> <保存路径> 3、分析hprof文件 用工具MAT来查看,首先还要这个HPROF文件转换成MAT可读的文件 在Android SDK tool里面有个hprof-conv命令: hprof-conv <原HPROF文件路径> <转换后的HPROF路径> hprof-conv a.hprof b.hprof 4、用MAT工具打开转换后的HPROF文件 一般选择Leak Suspects Report(通过SQL语句来查询对象有没有被释放掉,如果有多个相同的对象,则会存在内存泄露的问题)
测试开发社区
2019/09/20
3.9K0
Android应用测试速查表
写在前面 最近研究了下Android应用测试,找了一些资料,觉得OWASP这篇写的还是比较系统的,所以翻译出来给大家分享下。文中的翻译尽可能保持原文格式,但一些地方为了通顺和易于理解也做了一定改动,如
FB客服
2018/02/23
1.8K0
Android应用测试速查表
移动安全渗透测试清单 2022
多合一移动安全框架的移动安全渗透测试列表,包括 Android 和 iOS 应用程序渗透测试。
信安之路
2022/10/04
2.3K0
速读原著-Android应用开发入门教程(Android中运行仿真器环境)
为了运行一个 Android 仿真器的环境,首先需要建立 Android 虚拟设备(AVD)。在 Eclipse 的菜单中,择“Window”>“Android AVD Manager”,出现“Android SDK and AVD Device Manager”窗口,界面如图所示:
cwl_java
2020/01/15
8630
利用Android Webview漏洞
https://github.com/t4kemyh4nd/vulnwebview
tea9
2023/08/24
6840
利用Android Webview漏洞
android题目 AliCrackme分析
参考链接: https://www.52pojie.cn/thread-1315444-1-1.html apk包: 链接: https://pan.baidu.com/s/1jXfS1qJyZDflKhgzZb8zMQ 密码: htop
tea9
2022/07/16
8220
android题目 AliCrackme分析
【建议收藏】Android和iOS逆向分析/安全测试/渗透测试工具
1.Appie用于Android Pentesting的便携式软件包,是现有虚拟机的绝佳替代品
测试开发技术
2024/06/11
7900
【建议收藏】Android和iOS逆向分析/安全测试/渗透测试工具
一文入门Android逆向
本文节主要介绍一下Android逆向常用的环境、工具、动静态分析思路,笔者通过学习肉丝大佬分享的一些内容,加上自己一些经验总结而来。
FB客服
2020/09/14
3.3K0
一文入门Android逆向
相关推荐
Android App漏洞学习(二)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验