Android 深层链接利用

为了能够从我们的应用程序打开另一个应用程序,我们通常通过声明我们想要访问的 Activity 类的名称来实现这一功能。但是,如果我们要打开的 Activity 在其清单文件中设置了android:exported="false" ,则无法使用此方法。而其中一种替代方法是使用深层链接。

深层链接是我们可以用来直接转到应用程序中的某些功能的另一种方式,即使该应用程序不在我们的控制范围内。

了解深层链接及其漏洞

深层链接是专门设计用于打开应用程序中的某些活动的 URL。这可以从各种来源触发,例如网页、推送通知或其他应用程序。在Android中,深层链接可以分为Scheme URL、App Links和Intent URL。其中Scheme URL 允许任何应用程序注册自定义方案、主机和路径。但其中缺乏验证容易导致链接劫持,恶意应用程序会插入本应用于另一个应用程序的链接。错误配置和不正确的验证过程可能使应用程序容易受到链接劫持和数据盗窃。

深层链接的风险和利用

如果没有适当保护,深层链接可能会给应用程序带来各种风险和漏洞。常见和潜在的漏洞包括:

1.网络钓鱼攻击:攻击者可以利用未经正确身份验证的深层链接将用户重定向到模仿真实网站外观的虚假网站。这可能会导致用户在虚假网站中输入密码或信用卡信息等敏感信息,然后这些信息可能会被攻击者滥用。

2.恶意软件分发:攻击者可以使用深层链接将用户引导至包含恶意软件的网站或自动将恶意文件下载到用户的设备。这可能会导致设备感染和潜在的数据丢失或系统损坏。

3.数据拦截(数据盗窃):未加密或不安全的深层链接可能会导致通过该链接发送的敏感数据被攻击者拦截。通过易受攻击的深层链接发送的个人或机密信息可能会被滥用于身份盗窃或其他目的。

4.中间人攻击:攻击者可以尝试将自己插入用户和服务器之间,以窃取或操纵通过深层链接发送的数据。如果深层链接未加密或连接不安全,则可能会发生这种情况。

5.链接劫持:攻击者可以尝试将针对特定应用程序的深层链接重定向到另一个应用程序或恶意网站。这可能会迷惑用户并允许攻击者窃取信息或访问不适当的应用程序功能。

6.身份盗窃:攻击者可以利用脆弱的深层链接来窃取用户的个人信息,例如姓名、地址或信用卡号。然后,该信息可用于实施身份盗窃或其他在线欺诈。

7.未经授权的访问:未得到适当保护的深层链接可能会在未经适当授权的情况下提供对应用程序中敏感功能或数据的访问。这可能会导致数据泄露或未经授权使用应用程序。

深层链接利用

作为练习,我将使用 AllSafe 应用程序。源代码可以在这里下载:https://github.com/t0thkr1s/allsafe。

使用 Jadx 打开 .apk 文件。然后进入到 AndroidManifest.xml 文件

图片

img

按 Ctrl + F 打开搜索框并搜索“android:scheme”。我们寻找“android:scheme”的原因是, 标签至少应该包含 android:scheme 属性。

图片

img

如上图所示,该应用程序有两种不同的方案( allsafe://和https:// )。

了解代码

双击“infosecadventures.allsafe.challenges.DeepLinkTask”。

图片

img

导航到深层链接文件。检查代码后,很明显,进行数据的验证取决于“ key ”的参数的存在以及与strings.xml中存储的值(也标记为“ key ”)进行比较。我们的目标是确保这个“ if”条件产生正确的结果。因此,在开始任何利用之前,我们的第一步是获取“ key ”值,很显然该值存储在strings.xml中。

图片

img

现在,通过单击值进入到res下的resources.arsc文件夹并打开*strings.xml 文件。然后搜索“key”

图片

img

在第一种方案中,scheme是“allsafe”,host是“Infosecadventures”,前缀路径是“/congrats”。

  • allsafe://infosecadeventures/congrats?key=ebfb7ff0-b2f6–41c8-bef3–4fba17be410c

在第二种方案中,只有一个属性称为scheme,这意味着在 Allsafe 应用程序中打开深层链接对host或路径没有限制。

  • https://<any URL>?key=ebfb7ff0-b2f6–41c8-bef3–4fba17be410c

漏洞利用

我们可以使用adb(Android Debug Bridge)来利用这个漏洞:

– 打开终端并写入以下命令。

adb shell am start -a "android.intent.action.VIEW" -d "allsafe://infosecadventures/congrats?key=ebfb7ff0-b2f6-41c8-bef3-4fba17be410c"

am start :这部分命令调用am (活动管理器)。

-a :该参数指定启动活动时要执行的操作。在本例中,它设置为“android.intent.action.VIEW” 。

-d :该参数用于指定与Intent相关的数据。设置为“ allsafe://infosecadventures/congrats?key=ebfb7ff0-b2f6-41c8-bef3-4fba17be410c ”

图片

img

– 执行命令后,看起来漏洞已成功执行。

图片

img

– 第二个利用方案,

  • https://<any URL>?key=ebfb7ff0-b2f6–41c8-bef3–4fba17be410c

– 这里我将 URL 更改为 evil.com,完整命令如下所示:

  • adb shell am start -a "android.intent.action.VIEW" -d https://facebook.com?key=ebfb7ff0-b2f6–41c8-bef3–4fba17be410c

图片

img

保护深层链接

应用程序可以采取多种做法来避免深层链接漏洞的风险,包括:

1.正确的验证和验证:实施正确的验证流程以防止链接黑客攻击,使用应用程序链接关联等验证机制。

2.Intent URL :考虑使用Intent URL 来提高安全性,而不是Scheme URL 或App Links。

3.输入验证:确保正确的输入验证,以防止任意组件访问和不安全的参数处理。

4.应用程序特定的身份验证:确保在应用程序特定的身份验证后处理深层链接,以避免未经授权访问敏感功能。

5.加密和保护敏感数据:加密通过深度链接传输的敏感数据并使用安全通信协议。

6.漏洞测试:定期执行安全测试,以识别应用程序深层链接实现中的弱点。

7.安全培训:让用户了解深层链接的风险以及如何识别合法链接以避免攻击。

 无偿获取网络安全优质学习资料与干货教程

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149002.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Open3D(C++) 基于点云的曲率提取特征点(自定义阈值法)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接,首发于:2024年9月23日。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的抄袭狗。 一、算法原理 点云的曲率反映了点云表面的凹凸程度,根据点云曲率的分布情况,设置合适的阈值,提取…

安畅检测受邀参与“长清区数字化转型企业对接会”

9月11日下午&#xff0c;长清区工信局召开“长清区数字化转型企业对接会”&#xff0c;链接数字化服务商与亟待数字化升级的企业代表&#xff0c;共商推进数字化诊断等事项&#xff0c;安畅检测数字化诊断项目负责人受邀出席本次会议。 会上&#xff0c;长清区工信局相关负责人…

性能测试问题诊断-接口耗时高

问题现象&#xff1a;近期发现每晚跑的定时压测任务&#xff0c;压测结果中&#xff0c;各接口耗时变高&#xff08;原来99耗时<3秒&#xff0c;当前99耗时>20秒)。 问题排查&#xff1a; 查看jmeter 生成的结果图&#xff0c;发现压测2分钟后出现接口耗时变高情况。如下…

安装一个本地大模型

详细的教程基于 AnythingLLM 及 Ollama 构建本地知识库 - knqiufan - 博客园 安装本地大模型之后&#xff0c;用如下方式启动 ollama run deepseek-v2:16b。

海豚调度运行成功但无法生成实例解决

海豚调度运行成功但无法生成实例解决 问题描述 点击运行&#xff0c;提示运行成功但无法在工作实例中看到 问题定位 查看资源监控&#xff0c;内存占用80% 查看master日志 tail -f /home/dolphinscheduler/tmp/dolphinscheduler/master-server/logs/dolphinscheduler-m…

Webpack 介绍

Webpack 介绍 Date: August 29, 2024 全文概要 Webpack概念&#xff1a; Webpack是一个静态的模块化的打包工具&#xff0c;可以为现代的 JavaSript 应用程序进行打包。 1-静态&#xff1a;Webpack可以将代码打包成最终的静态资源 2-模块化&#xff1a;webpack支持各种模块…

【Python报错已解决】AttributeError: ‘Tensor‘ object has no attribute ‘kernel_size‘

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

【JS】forEach中push为何不会陷入死循环,稀疏数组空元素为何不会被遍历

前言 使用 forEach 时&#xff0c;遇到过如下几个问题 为什么稀疏数组空元素不会被遍历 为什么每次循环时 push 不会陷入死循环 为什么使用splice删除元素后&#xff0c;访问不到下一位元素 溯源 查阅 ecma官方文档&#xff0c;使用ECMA-262, 14th edition, June 2023版 …

【深度估计】【深度学习】Windows11下Dynamic-multiframe-depth代码Pytorch官方实现与源码讲解

【深度估计】【深度学习】Windows11下Dynamic-multiframe-depth代码Pytorch官方实现与源码讲解 提示:最近开始在【光流估计】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。 文章目录 【深度估计】【深度学习】Windows11下Dynamic-multiframe-depth代码Pyt…

JDBC PreparedStatement解决SQL注入方案

文章目录 获取PreparedStatement对象PreparedStatement是如何解决SQL注入问题的PreparedStatement的 应用上述如何解决sql注入的问题呢&#xff1f; 获取PreparedStatement对象 PreparedStatement是Statement的子接口&#xff0c;可以防止sql注入问题。可以通过Connection接口…

耳夹式耳机哪个品牌好?热门品牌机型推荐

在移动互联网时代&#xff0c;耳机已然成为很多人生活里不可或缺的电子产品。不管是在上下班的途中&#xff0c;还是进行运动的时候&#xff0c;耳机都能为人们带来音乐的美妙享受&#xff0c;起到减轻压力的作用。 可是&#xff0c;长时间佩戴入耳式耳机存在一些弊端&#xf…

【无人机设计与控制】使用凸优化的无人机在存在威胁区域时的路径规划

摘要 本文提出了一种基于凸优化的无人机路径规划方法&#xff0c;旨在解决无人机在威胁区域中飞行的最优路径问题。该方法通过构建威胁区域的凸集表示&#xff0c;并结合凸优化算法&#xff0c;确保无人机能够在避开威胁区域的同时&#xff0c;沿着最优路径到达目标点。仿真结…

Ubuntu的源管理详解

Ubuntu的源管理详解 Ubuntu软件源是存储Ubuntu软件包的服务器&#xff0c;通过这些源&#xff0c;用户可以下载、安装或更新软件包。这篇文章将详细介绍Ubuntu如何查看、添加、修改和删除源&#xff0c;以及如何解决源相关的问题。 什么是软件源&#xff1f; Ubuntu软件源是…

无人机之编程基础原理

无人机编程基础原理涉及多个方面&#xff0c;主要包括无人机的基本原理、飞行控制算法、编程语言及算法应用等。以下是对这些方面的详细阐述&#xff1a; 一、无人机基本原理 无人机的基本原理是理解其结构、飞行原理、传感器和控制系统等的基础。无人机通常由机身、动力系统&…

中国山东著名国学大师起名专家颜廷利:人类的终极使命,超越地球的探索之旅

中国山东著名国学大师起名专家颜廷利&#xff1a;人类的终极使命,超越地球的探索之旅 人类的存在&#xff0c;不是为了留恋地球&#xff0c;而是为了离开地球…&#xff08;升命学说&#xff09; 安徽阜阳、海口、滁州、宜春、河南周口、新乡、茂名、宁夏.银川最好的专业取名…

【CSS in Depth 2 精译_032】5.4 Grid 网格布局的显式网格与隐式网格(上)

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…

【PGCCC】 复合索引和部分索引,竟然能让查询速度提升 275 倍!

索引对于加速数据库查询和提高 PostgreSQL 应用程序的性能至关重要。但是&#xff0c;并非所有索引都以相同的方式发挥作用。复合索引和部分索引是两种常见类型&#xff0c;每种类型都有不同的用途和对性能的影响。本文我们将深入探讨复合索引和部分索引是什么、它们如何运作以…

BUG——IMX6ULL编译正点原子Linux内核报错

最初编译的是正点原子改过的Linux内核&#xff0c;可能是版本问题&#xff0c;一直报错&#xff0c;无法成功编译。然后换成NXP官方Linux内核6.6版本&#xff0c;初始编译虽然也报各种错&#xff0c;但都是缺少库或相关工具&#xff0c;全部安装后就可以成功编译出镜像了&#…

运营商二要素接口如何用PHP实现调用

一、什么是手机二要素&#xff1f; 运营商二要素又称手机二要素&#xff0c;运营商二要素核验&#xff0c;手机二要素核验&#xff0c;即传入姓名、手机号码&#xff0c;校验此两项是否一致。实时核验&#xff0c;返回校验结果&#xff01; 二、手机二要素适用哪些场景&#…

【逐行注释】MATLAB的程序,对比EKF(扩展卡尔曼滤波)和PF(粒子滤波)的滤波效果,附下载链接

文章目录 总述部分源代码运行结果扩展性 总述 本代码使用 M A T L A B MATLAB MATLAB实现了扩展卡尔曼滤波&#xff08; E K F EKF EKF&#xff09;和粒子滤波&#xff08; P F PF PF&#xff09;在状态估计中的对比分析。 主要功能包括&#xff1a; 参数设置&#xff1a;初始…