WIKI

12.8 文件全局读写漏洞检测

(1)描述

在使用getDirgetSharedPreferences(SharedPreference)openFileOutput时,如果设置了全局的可读权限,攻击者恶意读取文件内容,获取敏感信息。在设置文件属性时如果设置全局可写,攻击者可能会篡改、伪造内容,可能会进行诈骗等行为,造成用户财产损失。其中getSharedPreferences如果设置全局写权限,则当攻击app跟被攻击app具有相同的”Android:sharedUserId”属性时和签名时,攻击app则可以访问到内部存储文件进行写入操作。

(2)风险等级

(3)影响范围

所有

(4)检测方法

检测类型:静态分析

检测出使用了getDirgetSharedPreferencesopenFileOutput函数的参数值是否使用了MODE_WORLD_READABLEMODE_WORLD_WRITEABLE

(5)修复建议

ü  使用MODE_PRIVATE模式创建内部存储文件

ü  加密存储敏感数据

ü  避免在文件中存储明文敏感信息

ü  避免滥用”Android:sharedUserId”属性

如果两个app”Android:sharedUserId”属性相同,切使用的签名也相同,则这两个app可以互相访问内部存储文件数据

(6)样例分析

http://wooyun.org/bugs/wooyun-2010-047172

http://wooyun.org/bugs/wooyun-2010-054438

http://wooyun.org/bugs/wooyun-2010-0151270

(7)参考资料

https://jaq.alibaba.com/blog.htm?id=56

https://jaq.alibaba.com/blog.htm?id=58

http://wolfeye.baidu.com/blog/global-rw-of-sharepreference/

http://wolfeye.baidu.com/blog/global-rw-of-file