首页 > 其他分享 >漏洞免费实战部分-安卓应用漏洞学习case5

漏洞免费实战部分-安卓应用漏洞学习case5

时间:2023-01-14 12:00:57浏览次数:64  
标签:openFileHelper 函数 data 安卓 uri 漏洞 case5

前期回顾

漏洞免费实战部分-安卓应用层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组件的自定义权限

安卓应用漏洞学习case5

本课程学习Content Provider组件的openFileHelper的函数,openFileHelper函数是为了方便实现openFile函数提供简单的实现。

openFileHelper

openFileHelper

三星在野漏洞cve-2021-25337它是系统权限下的任意文件写。openFileHelper函数为了通过uri寻找数据表中_data字段的文件路径,并打开文件返回FileDescriptor对象。根据p0的博客的介绍,漏洞存在三星手机中的剪切板服务中,没有具体的app实现,只有Server.jar包中有具体的实现代码。

cve-2021-25337

cve-2021-25337

案例实战:

为了学习这个openFileHelper函数,我编写一个case5应用。功能简单,应用启动创建一个名为case5.db的数据库并生成表名为hack的数据表。表中有两个字段_id(key键并且自增长)和’ _data’(text字段并不能为空)。

images2

images2

在Activity启动时创建/data/data/package/files/overflow.txt文件。

images2

images2

为了方便调用case5的Content Proider组件,实现一个匹配任意数字调用的uri 如下:

images3

images3

case5运行截图:

case5

case5

在files目录下的文件,如下图可知文件只有case5应用的可以读写:

file

file

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

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

image

image

选择Empty Activity

image

image

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

image

image

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

poc

poc

创建调用case5的Content Proider组件uri字符串 ‘content://com.study.case5’。向hack表中的 _data 字段插入文件路径 ‘/data/data/com.test.case5/files/overflow.txt’。case5的Content Proider组件中insert函数会返回插入 _data字段对应的 _id 字段组合的uri。

insert

insert

比如第一次插入 _data 字段那么返回的是 “content://com.test.case5/1”。这个uri保存文件路径,调用openFileDescriptor函数访问文件并写入。

运行poc5界面截图:

poc5

poc5

poc5代码中向文件写入 hello 字符串,此时case5应用中的overflow.txt内容如下:

content

content

调用逻辑:

在poc5中调用openFileDescriptor函数后,通过framework的代理访问到case5的openFile函数,传入的uri假设为 “content://com.study.case5/1” .

openfile

openfile

openFile函数在调用this.openFileHelper函数,函数中它会使用query接口查找hack数据表中 _data字段保存的内容。

openFileHelper2

openFileHelper2

query接口会去调用MyContentProvider组件实现的query函数。

query

query

此时的uri依旧是”content://com.study.case5/1” ,这时会将uri的1变量取出当做_id 字段查询hack表中对应的 _data字段的变量,projection就是openFileHelper函数中传入的 _data 字段。成功查询到字段后返回到openFileHelper函数中,将字段对应的路径文件打开并返回。

openFileHelper3

openFileHelper3

 

 

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

 

 

 

 

标签:openFileHelper,函数,data,安卓,uri,漏洞,case5
From: https://www.cnblogs.com/haidragon/p/17051521.html

相关文章

  • 安卓学习1--基础属性详解
    基础属性详解11.layout_width:组件的宽度232.layout_height:组件的高度453.id:为TextView设置一个组件id674.text:设置显示的文本内容895.textCo......
  • 安卓学习3--实现跑马灯效果的TextView
    实现跑马灯效果的TextView11.android:singleLine:内容单行显示232.android:focusable:是否可以获取焦点453.android:focusableinTouchMode:用于控制视图在触摸模式......
  • 安卓学习2--带阴影的TextView
    带阴影的TextView11.android:shadowColor:设置阴影颜色,需要与shadowRadius一起使用232.android:shadowRadius:设置阴影的模糊程度,设为0.1就变成字体颜色,建议使用3.04......
  • 全面了解文件上传漏洞, 通关upload-labs靶场!
    靶场简介upload-labs是一个专门用于学习文件上传漏洞攻击和防御的靶场。它提供了一系列模拟文件上传漏洞的实验环境,用于帮助用户了解文件上传漏洞的原理和防御技术。这个......
  • 安卓自定义----带Edit的TextView标签组件
     组件效果图如下,组件包含两种显示方式,第一种是TextView和EditText横排显示,第二种是TextView和EditText竖排显示:主activety_main.xml内容,组件包含两种显示方式......
  • 安卓笔记 0 加载模板和设置事件的DEMO
    在onCreate的方法中加载模板2种主要方式:1:setContentView(R.layout.activity_main);2:LinearLayoutmainLinearLayout=(LinearLayout)getLayoutInflate......
  • NTP Mode 6 检测漏洞【原理扫描】
    系统:AIX7cd/etccpntp.confntp.conf.bakvinet.conf##在最后加上一行restrictdefaultnotrustnomodifynopeernoquerynotrap##重启xntpd服务refresh-......
  • 某达摄像头的漏洞挖掘经历
    前言文章首发:https://mp.weixin.qq.com/s?__biz=MzIzMTc1MjExOQ==&mid=2247508121&idx=1&sn=e34f59e53a1394600c7e768fcbf237f9&chksm=e89d8841dfea0157a63c1a15213306739......
  • 安卓应用打包
    应用名称打开的地址应用图标......
  • 聊聊web漏洞挖掘第一期
    之前写2022年度总结的时候,有提到要给大家分享漏洞挖掘技巧。这里简单分享一些思路,更多的内容需要大家举一反三。文章准备昨晚写的,昨天晚上出去唱歌,回来太晚了,耽搁......