安卓安全之静态Receiver与动态Receiver容易忽视的点
背景
在做安卓安全时,发现代码未对动态receiver中的action做判空校验,就直接进行equals比较,乍一看是有问题的;
后面开发申述:动态receiver的action是不会为空的,所以判空与否都不是问题;
仔细一想,好像是这么回事;
动态receiver接受的广播是通用IntentFilter里面的action决定的,接受到的广播必有action;
那么问题来了,那静态receiver呢?
答案:静态receiver是可以接收到空action的广播的
上代码:
针对静态receiver的攻击
1、
- 首先是简单的正常应用,重现未对Intent的action做判空就直接equals的情况
- 接着构建恶意应用,针对上述正常应用做攻击,即发送action为空的广播,如何发送呢?直接指定receiver即可