CVE-2023-35674 的指南和理论代码
CVE-2023-35674 的指南和理论代码
由于 Android 超出了我的技能范围,请将我这里的内容视为我个人视角下关于如何利用此 CVE 的高层概述。代码片段只是骨架,请帮帮忙 :) 所以,首先你不能仅靠 CVE-2023-35674 进行利用。为什么?因为 CVE-2023-35674 仅仅是因一个逻辑错误而允许你启动后台活动。因此,本质上你会利用此 CVE 在后台启动一个应用,并使用像 CVE-2021-0307 这样的漏洞进行权限提升。一句忠告:要完全利用这两个漏洞(即利用这条漏洞链),唯一的方法是你的 Android 必须是 Android 11。
那么现在来说 CVE-2023-35674。根本原因本质上是:虚拟演示(virtual presentation)被认为只能显示在私有虚拟显示器上,而这不应成为应用被视为前台的依据。因此,我加入了来自 Google Docs 的 Presentation.java 代码,用于启动一个虚拟演示,并在其中启动一个类的实例(这部分应替换为启动应用的方式)。默认情况下,这会在后台启动应用。[1]
接下来是 eop 部分……对于 CVE-2021-0307,我用这个(https://blog.thalium.re/posts/leveraging-android-permissions/)作为参考……更具体地说是什么?就是这个

所以自然而然地,我考虑编写一个骨架,因为再次强调,Android 超出了我的能力范围,而且我很懒。于是 MainActivity.java 就诞生了。现在,随着理解加深,我认为利用流程应该略有不同。怎么不同?
嗯,对于在后台启动应用这一点,[1] 仍然应当遵循。然而对于 eop,它应该类似于下面图片中的流程

如你所见,利用流程完全相同,只是最后不是像 eop 那样结束利用,而是以我们最初在后台启动利用的那个应用来结束。
所以总的来说,我想我描述了 2 种获得 eop 的方式,不过我认为只有对于 CVE-2023-35674,你只能在后台执行代码。但话说回来,我认为有 2 种方式可以利用这个 CVE-2023-35674:
请对我在这里写的一切持保留态度,除非有进一步通知(直到我找到一位懂 Android 漏洞利用的人来合作……)。