本篇为描述CVE-2020–15647的文章,解释了网页如何能够从Android设备上窃取文件,包括但不限于来自任何已访问网站的cookie。
介绍
在2020年中,我开始检查Android浏览器是否存在多种类型的漏洞。在查看Firefox for Android的v68.9.0时,我注意到它在浏览content://
URI时显示奇怪的行为。 对于上下文,Android中的Content URI标识内容提供者中的数据;它们可以表示多种形式的信息,例如文件或数据库信息。
大多数浏览器都支持file://
和content://
URI方案的解析和处理。如果尝试在浏览器中打开本地HTML文件,则该文件很可能会使用由打开文件时使用的文件浏览器创建的content:// URI。
测试内容:// URI
当我测试Firefox对content
URI的使用时,我注意到在渲染URI时地址栏正在更改,从而将我重定向到
file://
URI。看来Firefox将内容保存到文件中,然后将我重定向到该创建的文件-该文件被保存在内部临时文件夹中
/data/data/org.mozilla/firefox/cache/contentUri/
。
我还注意到,创建的文件_display_name
与提供程序返回的显示名称()具有相同的名称,并且Firefox不会更改名称(因此会覆盖该文件)(如果已存在)。
权限
内容提供者的问题是,通常,应用程序需要特定的URI权限才能从其他应用程序和提供者获取内容。这可以防止应用程序访问其他提供程序中的文件,除非已明确授予它们许可(在点击“打开方式”或“共享方式”并选择一个应用程序来访问文件时就是这种情况)。但是,从自己的内容提供者访问URI时,应用程序无需遵循此路线。Firefox的文件内容提供者的权限为
org.mozilla.firefox.fileprovider