安卓系统组件攻击—Activity

博客介绍了Android Activity的不同状态及生命周期方法,如启动、创建、暂停等,还说明了每个Activity需在AndroidManifest.xml配置。同时以FourGoats为目标进行攻击演示,包括在不同系统操作及使用命令查找活动、开启页面。最后给出修复建议,可指定开启者并添加权限属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Activity介绍

活动,通常是指单独的页面或屏幕,一个应用程序通常由多个页面组成,页面之间使用intent通信,intent结构是动作和动作对应的数据。
典型的活动有:
l 启动活动:启动活动由onCreate()方法调用。当用户从设备的主屏幕单击应用程序时,将调用此方法。
l 创建活动:通过调用onCreate()方法调用活动的新实例。对于每个活动,此方法只调用一次。在活动结束时,系统调用onstart()和onResume()方法。当调用onStart()方法时,用户将能够看到一个活动。一旦活动启动,onResume()方法将被调用,活动将处于Resumed状态。
l 暂停活动:通过调用onPause()方法暂停活动。当一个活动被另一个活动超过时,新活动会出现在前台,但第一个活动仍然在后台可见,并被暂停。需要被持久化的信息被保存,以防用户转移到另一个活动。
l 恢复活动:通过调用onResume()方法恢复活动。此方法用于从暂停状态恢复活动。当一个activity进入前台时,系统会调用onResume()方法。该活动恢复其任务并继续执行,考虑到用户关注该活动。
l 停止活动:通过调用onStop()方法停止活动。此方法用于在活动不再可见时停止该活动,并释放该活动使用的所有资源。
l 重新启动活动:通过调用onRestart()方法重新启动活动。当活动从停止状态来到前台时,使用此方法。默认情况下,onStart()方法也会与onRestart()方法一起被调用。
l 销毁活动:通过调用onDestroy()方法销毁活动。此方法用于完全结束活动。所有的信息和资源都被释放出来,这种方法通常是清洁的启动任何未被onstop()方法释放的资源。
每个应用中的每个活动即页面都必须要在AndroidManifest.xml配置文件中说明。否则没有办法正确执行活动。
在这里插入图片描述
下图为AndroidManifest.xml配置文件中声明每一个Activity
在这里插入图片描述

2.实现攻击

攻击目标为four goats,在win10中开启four goats服务
在这里插入图片描述
在android 7.1.2中安装four goats客户端
在这里插入图片描述
添加服务器地址:192.168.1.4
端口:9888
继续在android7.1.2中打开drozer agent
在这里插入图片描述
在这里插入图片描述
在win10命令行里使用adb devices查看设备,并运行adb forward tcp:31415 tcp: 31415 命令进行端口转发,转发端口为drozer使用的端口31415
在这里插入图片描述
使用drozer.bat console connect 命令连接模拟器
在这里插入图片描述
使用命令 run app.activity.info -f fourgoats查找当前four goats 应用的所有活动
在这里插入图片描述
也可以使用命令run app.activity.info -a org.owasp.goatdroid.fourgoats -u查看所有应用fourgoats的所有活动,包括暴露的活动与隐藏的活动
在这里插入图片描述
在不开启fourgoats情况下,可以看到fourgoats.Main活动是开启的并且权限为空
在这里插入图片描述
使用命令 run app.activity.start --component org.owasp.goatdroid.fourgoats org.owasp.goatdroid.fourgoats.activities.Main 开启这个页面,如下图,开启活动后,出现应用four goats 的主页面。
在这里插入图片描述
由于之前登陆过账号密码,所以直接登录进去,并没有跳出登录页面,这是非常危险的。

3.修复建议

可以通过指定谁可以开始它,并向特定活动添加权限属性来实现。下面的代码片段提供了一个示例:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值