android 组件导出安全,App安全检测实践基础:组件安全(二)
系列文章目录Activity简述Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件。在一个android应用中,一个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相关的代码,进行分析运行情况
利用adb命令启动被导出的Activity
adb shell am start -S -n 包名/Activity名

如何找到的这个包和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是(否)存在敏感信息泄露和越权操作等安全风险
菜单如下所示:

更多推荐



所有评论(0)