本文主要是介绍Android静态安全检测 - Content Provider文件目录遍历漏洞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Content Provider文件目录遍历漏洞 - openFile方法
一、API
1. ContentProvider.openFile(Uri uri, String mode)
2. 第一参数:指向被打开的目标文件
3. 第二参数:文件的访问模式
r 表示只读(read-only)
rw 表示读写(read and write)
rwt 表示读写防删除
参考链接:http://blog.csdn.net/fly542/article/details/7108037
4. 参考链接
https://developer.xamarin.com/api/member/Android.Content.ContentProvider.OpenFile/p/Android.Net.Uri/System.String/
二、触发条件
1. 对外暴露的content provider组件
参考链接:http://blog.csdn.net/u013107656/article/details/51862737
2. 实现了openFile()接口
【1】对应到smali语句中的特征:
.method public openFile(Landroid/net/Uri;Ljava/lang/String;)
三、漏洞原理
【1】对外暴露的Content Provider组件实现了openFile()接口,并且没有对Content Provider组件的访问进行权限控制,也没有对访问的目标文件的Uri进行有效判断,第三方应用程序可以利用该接口进行文件目录遍历,访问任意可读文件
【2】详细的原理&POC
https://jaq.alibaba.com/community/art/show?spm=a313e.7916646.24000001.14.YTCZiR&articleid=61
http://drops.wooyun.org/mobile/16382
四、修复建议
【1】将不必要导出的Content Provider组件设置为不导出(android:exported="false")
【2】移除没有必要的openFile()接口
【3】对访问的目标文件的路径进行有效判断
这篇关于Android静态安全检测 - Content Provider文件目录遍历漏洞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!