Android静态安全检测 - PendingIntent误用风险

2024-08-29 03:08

本文主要是介绍Android静态安全检测 - PendingIntent误用风险,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PendingIntent误用风险 - android.app.PendingIntent



一、API


1. 继承关系


【1】java.lang.Object

【2】android.app.PendingIntent


2. 主要方法


【1】getActivity(Context context, int requestCode, Intent intent, int flags)


【2】getBroadcast(Context context, int requestCode, Intent intent, int flags)


【3】getService(Context context, int requestCode, Intent intent, int flags)


【4】其他方法


https://developer.android.com/reference/android/app/PendingIntent.html


3. PendingIntent介绍


【1】使用方法类的静态方法getActivity,getBroadcast,getService,可以得到一个PendingIntent对象,分别对应着Intent的三个行为,跳转到一个activity组件、打开一个广播组件和打开一个服务组件


【2】参数有4个,比较重要的是第三个和第一个,可以看到,要得到PendingIntent对象,必须传入一个Intent作为参数


【3】PendingIntent是一种特殊的Intent,主要的区别在于Intent的执行是立刻的,而PendingIntent的执行不是立刻的,PendingIntent执行的操作实质上是参数传进来的Intent的操作


【4】使用PendingIntent的目的在于它所包含的Intent的操作的执行是需要满足某些条件的

  状态栏通知(Notification的发送)

  短消息发送(SmsManager)

  警报器执行(AlarmManager)


【5】参考链接


http://www.cnblogs.com/wjjair/p/3392031.html


二、触发条件


1. 定位关键API的位置


【1】Landroid/app/PendingIntent;->getActivity(

【2】Landroid/app/PendingIntent;->getBroadcast(

【3】Landroid/app/PendingIntent;->getService(


2. 判断第三参数是否为空Intent


【1】确定寄存器名称 v1

  初始化形式 Intent intent = new Intent()

  对应到smali语句的特征

 invoke-direct {v1}, Landroid/content/Intent;-><init>()V


【2】判断是否设置Action或者ComponentName

  Landroid/content/Intent;->setAction(

  Landroid/content/Intent;->setClass(

  Landroid/content/Intent;->setClassName(

  Landroid/content/Intent;->setComponent(

  Landroid/content/Intent;->setPackage(


三、漏洞原理


【1】使用PendingIntent的时候,如果使用了一个空Intent,会导致恶意用户劫持修改Intent的内容


【2】更多内容


http://drops.wooyun.org/papers/3912

四、修复建议


【1】禁止使用一个空Intent去构造PendingIntent


【2】构造PendingIntent的Intent一定要设置ComponentName或者action

这篇关于Android静态安全检测 - PendingIntent误用风险的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116670

相关文章

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.