freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

App安全检测实践基础:组件安全(二)
2020-11-30 14:29:16

系列文章

App安全检测实践基础:客户端程序安全(一)

目录

Activity简述

Activity拒绝服务

Activity组件越权

Activity劫持

Activity简述

Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件

在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。

Activity是Android组件中最基本也是最常用的一种组件,每一个Activity都被实现为一个独立的类,并且继承于Activity这个基类。

activity类处于android.app包中,继承体系如下:

1.java.lang.Object

2.android.content.Context

3.android.app.ApplicationContext

4.android.app.Activity

Activity拒绝服务

1、描述

开发者为方便调用,会把Activity组件设置为导出状态。Android组件之间采用Intent来传递数据,如果Intent接收方没有对Intent的畸形数据进行异常捕获,可以通过构造附有畸形数据的Intent,导致APP崩溃,触发拒绝服务漏洞。

2、过程

查看AndroidManifest.xml是(否)存在Activity导出

查看一下 Intent相关的代码,进行分析运行情况

<intent-filter>

<action android:name="android.intent.action.MAIN"/>

</intent-filter>

</activity>

<activity-alias android:enabled="true" android:icon="@drawable/ic_logo_toast" android:label="@string/app_name" android:name="semem.toast.logo1" android:targetActivity="semem.toast.MainActivity">

<intent-filter>

<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER"/>

</intent-filter>

利用adb命令启动被导出的Activity

adb shell am start -S -n 包名/Activity名1606717430_5fc48ff606c110e0da3b2.png!small?1606717431502

如何找到的这个包和Activity名,请查看相关内容

3、建议

将不必要导出的组件调整为不导出

对intent的数据处理进行保护

Activity组件越权

1、描述

开发者为方便外部调用,会把Activity组件设置为导出状态。如果由于开发者的疏忽,把一些包含用户敏感信息或可进行敏感操作的组件设置为导出状态,可能会造成越权查看敏感信息泄露以及越权操作等安全风险。

2、过程

查看AndroidManifest.xml是否存在Activity导出

利用adb命令启动被导出的Activity

adb shell am start -S -n 包名/Activity组件名

Package: semem.toast

semem.toast.MainActivity

Permission: null

semem.toast.logo1

Permission: null

Target Activity: semem.toast.MainActivity

semem.toast.TranslateActivity

Permission: null

semem.toast.shortwww_activity

Permission: null

semem.toast.NewQRCodeActivity

Permission: null

semem.toast.GetWebCodeActivity

Permission: null

semem.toast.SearchActivity

Permission: null

确认Activity是(否)存在敏感信息泄露和越权操作等安全风险

菜单如下所示:1606717503_5fc4903fbd2f4d1f7cac5.png

# 安卓 # APP # Activity
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录