freeBuf
主站

分类

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

特色

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

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

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

系列文章

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

可试读前40%内容
¥ 4.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# 安卓 # APP # Activity
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 calmness 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
calmness LV.4
专注安全工作,沉淀安全知识
  • 18 文章数
  • 67 关注者
考核-迎检经验深入浅出
2025-02-10
安全服务工程师梳理网络
2025-02-04
数据安全体系建设自我思考
2025-01-11
文章目录