Android学习第五天-Activity

一些常见的adb 的用法

adb shell am

adb logcat 用法

比如:

adb logcat | grep MyApp
adb logcat | grep -i myapp #忽略大小写。
adb logcat | grep --color=auto -i  myapp #设置匹配字符串颜色。更多设置请查看 grep 帮助。

今天学习的是Activity组件

先来了解一下Android中UID机制和共享进程

我们经常在一个activity中去start另一个activity,或者与另一个acitivity的结果进行交互(startActivityForResult)

当我们在不同的application中,如application A中的Activity去start一个application B中的Activity,也许你什么Exception都不会得到,也可能会直接Force Close掉。因为再Start Activity时,代码是有去检验permission的。

如下情况,可以成功startActivity而不会得到permission denial

1、同一个application2、Uid相同

3、permission匹配

4、目标Activity的属性Android:exported=”true5、目标Activity具有相应的IntentFilter,存在Action动作或其他过滤器并且没有设置exported=false

6、启动者的Pid是一个System Server的Pid

7、启动者的Uid是一个System Uid(Android规定android.system.uid=1000,具有该Uid的application,我们称之为获得Root权限)

如果上述调节,满足一条,一般即可(与其他几条不发生强制设置冲突),否则,将会得到Permission Denial的Exception而导致Force Close。

现在,我来解释一下Uid机制

众所周知,Pid是进程ID,Uid是用户ID,只是Android和计算机不一样,计算机每个用户都具有一个Uid,哪个用户start的程序,这个程序的Uid就是那个那个用户,而Android中每个程序都有一个Uid,默认情况下,Android会给每个程序分配一个普通级别互不相同的Uid,如果用互相调用,只能是Uid相同才行,这就使得共享数据具有了一定安全性,每个软件之间是不能随意获得数据的。而同一个application只有一个Uid,所以application下的Activity之间不存在访问权限的问题。

利用ContentProvider攻击

•(1)收集ContentProvider的信息进行收集,查找暴露的ContentProvider
run app.provider.info –a apk包名

•(2)发现暴露的ContentProvider后,可以对数据库进行探测。探测出可以查询的URI

run scanner.provider.finduris –a apk包名

•(3)查看数据库中的内容

run app.provider.query URI

•(4)对数据库表进行插入操作

Run app.provider.insert URI对应数据表中的字段

•(5)对数据库表进行删除操作

Run app.provider.delete URI–-selection “条件”

栗子

可以参考一下这篇文章

还可以本地注入 虽然没有意义

本地注入

下面看看Broadcast Receivers相关漏洞攻防

什么是broadcast receivers

Broadcast receivers 是对广播接收和回应的组件。系统会发出许多广播,比如时区的改变、电量过低,图片被选中等。应用也可生成广播,比如通知其他设备一些数据已经下载完成并且可以被使用。

Broadcast receivers 没有用户界面。但是,他可以启动一个界面作为对广播的回应,或者使用NotificationManager提示用户。NotificationManager可以通过多种方式提示用户,比如闪烁背光灯,震动设备,播放提示音等等。手机状态条中会一直存在一个提示图标,用户可以打开它查看提示信息。

这个的漏洞我并没有复现等以后学习的差不多再看吧 先提升自己要紧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值