安卓应用漏洞学习-Content Provider组件的自定义权限

admin 2023年1月8日14:27:59评论32 views字数 1572阅读5分14秒阅读模式

前期回顾

漏洞免费实战部分-安卓应用层getLastPathSegment函数问题

漏洞实战部分2-安卓应用ZipEntry对象问题实战

漏洞实战部分3-ContentProvider组件的openFile接口问题

漏洞学习之PWN-easyheap分析

漏洞学习之PWN-HITCON_CTF_2016:Secret Holder

漏洞学习之PWN-绿城杯uaf_pwn 分析

漏洞学习之PWN-ASIS_CTF_2016_b00ks

漏洞学习之PWN-lctf2016:pwn200 堆利用

本课程学习Content Provider组件的自定义权限,存在这样的一个应用它想让自己Content Provider组件受到保护不被随意调用,同时又要提供数据给予外部访问,可以使用自定义权限。只有符合这个权限的App才能访问Content Provider组件。

Android protectionLevel 分4个级别:

"normal"
"dangerous"
"signature"
"signatureOrSystem"

如果定义的是前面两种normal或者dangerous, 我们自己的应用需要去访问其对应受保护的资源时只需要在androidManifest.xml中添加相同的uses-permission就行了。

如果是signature, 我们仅仅添加对权限的使用还不行, 必须同时具有相同的签名。

如果是signatureOrSystem(这种权限的应用第三方的应用无法单独访问), 不仅要有相同的签名,而且签名必须是系统签名,此外可能还需要android:sharedUserId=“android.uid.system”

自定义权限如下:

<permission
android:name="com.case4.provider.read" // 权限名称
android:label="provider permission" // 标签 起说明作用
android:protectionLevel="normal" // 权限等级
/>

案例实战:

为了学习这个自定义权限,我编写了一个case4应用。功能很简单,应用启动时创建一个名为case4.db的数据库并生成表名称为hack的数据表。表中有两个字段 _id(key键并且自增长)和CONTENT(text字段)。初始写入表中数据为“hello hack”。

安卓应用漏洞学习-Content Provider组件的自定义权限

insertData

为了方便外部调用case4应用的Content Provider组件,实现了两个调用uri如下:

安卓应用漏洞学习-Content Provider组件的自定义权限

uri

外部App调用Content Provider组件时使用相应的uri即可完成数据查询或插入。case4应用为Content Provider组件声明了自定义权限,如下:

安卓应用漏洞学习-Content Provider组件的自定义权限

permission

自定义权限等级是normal。

安卓应用漏洞学习-Content Provider组件的自定义权限

protectionLevel

case4运行截图:

安卓应用漏洞学习-Content Provider组件的自定义权限

case4

编写poc应用调用这个组件,插入数据和查询数据。

打开Android Studio 选择 Start a new Android Studio project项

安卓应用漏洞学习-Content Provider组件的自定义权限

image

选择Empty Activity

安卓应用漏洞学习-Content Provider组件的自定义权限

image

填写项目名和报名,其他不用管,直接Finish

安卓应用漏洞学习-Content Provider组件的自定义权限

image

完成后会进入到MainActivity类中,在onCreate函数中实现代码:

安卓应用漏洞学习-Content Provider组件的自定义权限

poc_onCeate

为了增加辨识,poc每次启动运行时都会向case4的数据库表中写入‘hello poc4’.

第一次运行 poc没有添加 “com.case4.provider.read” 权限时,运行报错。

安卓应用漏洞学习-Content Provider组件的自定义权限

SecurityException

第二次运行,poc添加使用权限运行。

安卓应用漏洞学习-Content Provider组件的自定义权限

usespermission

它的执行效果如图:

安卓应用漏洞学习-Content Provider组件的自定义权限

安卓应用漏洞学习-Content Provider组件的自定义权限

关注微信公众号或者可以直接加作者微信:

安卓应用漏洞学习-Content Provider组件的自定义权限

 

安卓应用漏洞学习-Content Provider组件的自定义权限

其它教程

安卓应用漏洞学习-Content Provider组件的自定义权限



原文始发于微信公众号(安全狗的自我修养):安卓应用漏洞学习-Content Provider组件的自定义权限

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月8日14:27:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安卓应用漏洞学习-Content Provider组件的自定义权限https://cn-sec.com/archives/1505583.html

发表评论

匿名网友 填写信息