这几天团队打算一起学习Android App漏洞挖掘方面的知识,于是乎拿了一个app当测试例子,争取在上面找到漏洞。在学习过程中发现Android四大组件的安全性还是占有较大的比重,另外比较关心的是数据的安全性。数据泄漏、明文存储等和数据相关都是比较重要的。但是今天找到的一个漏洞是关于Activity组件的,本地拒绝服务漏洞。

同时学习了drozer的使用方法,利用drozer帮忙找漏洞。

下面总结一些常用的drozer命令:

run app.package.info -f xxx

xxx是包名的一部分,运行这条命令之后会显示完整的包名

run app.package.info -a

运行这条命令会打印出包相关的信息,包括版本、路径、权限、uid、gid等

run app.package.attacksurface

运行这条命令之后会打印出这个应用四大组件的攻击面,Activity, Service, Content Provider, Broadcast是否有暴露的风险

run app.activity.info -a

运行这条命令会打印出exported的activity,并且显示是否需要相应的权限

run app.activity.start --component

如果activity是exported并且不需要权限,那么运行这条命令就可以启动相应的activity了

(目前只测试了activity组件,所以关于其他组件的命令暂时还没有使用)

首先说明一下这个本地拒绝服务漏洞的大概原理:

通过drozer可以找到exported的activity,而许多activity的调用是不需要权限的,即permission=null。意味着,其他应用无须权限就可以调用这些activity。同时,如果activity的调用是需要参数的,那么在调用时不带上参数就会因为输入异常导致应用崩溃了,这样就造成了本地拒绝服务。

漏洞修补的方法也很简单,可以从以下三个方面下手:

1.不需要被外部调用的activity设置android:exported="false";

2.若需要外部调用,需自定义signature或者signatureOrSystem级别的权限;

3.注册的组件请严格校验输入参数,注意空值判定和类型转换判断

简单的Poc:

Intent intent = new Intent();

intent.setComponent(new ComponentName(, ));

intent.putExtra("", "");

startActivity(intent);

原文:http://www.cnblogs.com/sevenr/p/4655769.html

android 组件暴露风险,Activity组件暴露导致本地拒绝服务相关推荐

  1. Android安全检测 - 组件导出风险

    市面上有很多的在线Android安全扫描工具,比如梆梆的安全检测平台.360显危镜.爱加密安全检测平台等等,自动化工具出来的结果大多数情况下都是非准确的,都需要人工进行复核.这一章我们来学习组件导出风 ...

  2. 【Android 插件化】“ 插桩式 “ 插件化框架 ( 代理 Activity 组件开发 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  3. android app渗透测试-Activity、Service

    Android App中可能出现的安全漏洞的类型: 协议--通信协议(本地.网络),协议大部分是由C/C++实现,存在以下安全问题:通信数据引发的逻辑漏洞:通信数据引发的缓冲区溢出等可能导致远程代码执 ...

  4. android 组件化_你曾遇到的某大厂奇葩问题:Android组件化开发,组件间的Activity页面跳转...

    组件化开发有什么好处? 1.当项目越来越大时,app的业务越来越复杂,会出现业务功能复杂混乱,各功能块.页面相互依赖,相互调用太多导致耦合度高,而采用组件化开发,我们就可以将功能模块合理的划分,降低功 ...

  5. android组件浮动在activity上_Jetpack Hilt 依赖注入框架上手指南

    code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群 作者:LvKang-insist 链接:https://juejin.im/post/5efdff9d6fb9a07e ...

  6. 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 在 PathClassLoader 和 BootClassLoader 之间插入 DexClassLoader )

    文章目录 前言 一.在 PathClassLoader 和 BootClassLoader 之间插入 DexClassLoader 1.创建 DexClassLoader 2.使用 DexClassL ...

  7. 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 使用 DexClassLoader 获取组件类失败 | 失败原因分析 | 自定义类加载器没有加载组件类的权限 )

    文章目录 一.使用 DexClassLoader 获取组件类失败报错 二.失败原因分析 一.使用 DexClassLoader 获取组件类失败报错 在上一篇博客 [Android 逆向]启动 DEX ...

  8. vue项目接口地址暴露_vue组件暴露和.js文件暴露接口操作

    1.将同一类型的组件放在一个文件夹下 2.在此文件夹下创建一个index.js 3.在index.js中导入组件,并把他们暴露出去 1.写法一 import studentCourse1 from ' ...

  9. 详解 Android 的 Activity 组件

    本文详细介绍了 Android 应用编程中 Activity 的生命周期.通信方式和 Intent Filter 等内容,并提供了一些日常开发中经常用到的关于 Activity 的技巧和方法.通过本文 ...

  10. android基础 [超级详细android Activity组件解析(Activity综述,Activity生命周期,Activity启动--携带参数启动)]

    1 章节目录 2 Android Activity综述 2.1 Activity怎么用 2.2 layout - 界面布局 2.3 Java - 控制界面 2.4 AndroidManifest.xm ...

最新文章

  1. 安卓13来了!首个开发者版公布,三方图标随壁纸变色,电量管理系统也安排上了...
  2. python常用内置模块-Python基础-22常用内置模块
  3. 四十一、深入Java中的 File类
  4. runtime如何实现weak属性
  5. 二叉树的BFS及DFS
  6. ROS入门-4.安装ROS系统(ubuntu20.04版本安装ros的noetic版本)
  7. 010 、JVM实战总结: 动手实验:亲自感受一下线上系统部署时如何设置JVM内存大小
  8. [Win系统][临时方案]系统任务管理器不能使用临时性解决方案
  9. 初中科技节计算机,初中科技节活动方案.doc
  10. 一道abc+cba=1333的问题
  11. 非线性鲁棒控制器_Sliding Mode_滑模控制
  12. 牛客网sql练习题解(43-51)
  13. php 爬虫图片,随机图片API-json格式基于python爬虫和PHP
  14. 一年用掉近3000吨草莓的奈雪,背后是供应链数字化持续投入
  15. Web前端零基础入门HTML5+CSS3学习笔记补充
  16. win10自带sftp服务器_高手亲自解决win10系统下怎么使用OpenSSH设置SFTP服务器的完全操作办法...
  17. 最详细的Java入门完整教程,学Java先收藏了
  18. 为什么辞职(或裸辞)之后很难再找到工作,而且能力越高越明显?
  19. MATLAB-随机森林实现数据回归分析预测
  20. krc 编辑 linux,KRC 文件扩展名: 它是什么以及如何打开它?

热门文章

  1. 选取销售订单开发票,控制销售订单中已开票金额
  2. unity3d meshBaker教程(二) 自动合并
  3. JavaWeb学习笔记(十三)之session的钝化和活化
  4. Spring Cloud Eureka 全解 (5) - 自我保护机制
  5. 双荧光素酶报告(Dual-Luciferase Reporter)实验介绍
  6. 院士如何应对互联网的碎片化和复杂性?道翰天琼认知智能机器人平台API接口大脑为您揭秘。
  7. 格式化日期时间字符串 Get-Date -Uformat , -format
  8. php ckfinder 无效请求.,解决nginx和php使用ckfinder无法上传大文件的问题
  9. 专访京东孙海波:大牛架构师养成记及电商供应链中区块链技术的应用
  10. 大二网页制作实习总结