type
status
date
slug
summary
tags
category
icon
password
Android引入Uid1000 授权限制某OS存在root_path配置的provider另外的某OS 中如果flag最高位为1则允许授权三星Galaxy A51中对部分provider进行放行使用脚本检查ROM中APP是否存在可以利用的provider参考
Android引入Uid1000 授权限制
在
checkGrantUriPermissionUnlocked
中仅允许UID=1000的系统应用授权两个provider
,正常情况下,即使可以对别的provider加白名单,system也没这个权限(checkUriPermissionLocked会检查callerUid有没有要访问授权的provider的权限)但是对于手机厂商而言,一般情况下会允许其他的一些
provider
授权
某OS存在root_path配置的provider
又如某OS中放行了
com.xxxx.phonemanager.files

而恰好,这个
file provider
又可以授权并且有root_path
配置,从而可以直接使用ParcelMismatch
进行利用,读写系统system_app
可读写(SELinux
限制)的文件。

另外的某OS 中如果flag最高位为1则允许授权

在设置
allowForceGrantPersistableUriPermission
为真后,一旦带有FLAG_GRANT_PERSISTABLE_URI_PERMISSION
(0x40
) 就会直接return targetUid
放行。导致授权成功。就可以通过StartAnyWhere漏洞对任意App的
FileProvider
进行授权,下面是对system应用的provider进行授权读写三星Galaxy A51中对部分provider进行放行
但是其中有三个File Provider中有
root_path
和external-path
等配置,从而也可以配合StartAnyWhere进行利用。使用脚本检查ROM中APP是否存在可以利用的provider
先需要将全部APK拖出来,然后检查其中 是必须要检查的 (删除是因为实际上在某些ROM中利用StartAnywhere利用不局限于system应用,即只要callingUID=1000即可,在不强制限制Authority的情况下,其他用户组的App也可以进行授权)。剩下的条件需要根据实际情况确定,比如这里使用
AndroidManifest.xml
中的内容,"android.uid.system"
FILE_PROVIDER_PATHS
意味着存在File Provider。对于三星和小米而言需要额外检查Authority
是否包含在放行区间。正常情况下system应用还是没有权限访问或者授权别的App的非导出
provider
的,仅限于部分ROM直接放行的情况,例如上面的某OS
下面的脚本不完善,可以根据自身需求添加内容。
参考
- 作者:LLeaves
- 链接:https://lleavesg.top//article/grantUriPermission-StartAnyWhere
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章