首页 > 安全 > 系统安全 >

115浏览器设计缺陷可导致远程窃取用户系统上的任意文件

2015-12-17

这漏洞两个月前发现的了 我只能说这利用比较猥琐 现在115网盘要强制用115浏览器才能登陆了 (┬_┬)好狠啊,抓住了人们的刚需详细说明: 结合了三处缺陷才能触发一:115浏览器结合了115网盘,提供了

漏洞两个月前发现的了..我只能说这利用比较猥琐...现在115网盘要强制用115浏览器才能登陆了 (┬_┬)好狠啊,抓住了人们的刚需

详细说明:

结合了三处缺陷才能触发

一:

115浏览器结合了115网盘,提供了在浏览器直接登陆115账号的功能

\

而在浏览器的下载模块添加了115网盘的上传功能

\


在浏览器登陆115账号的用户可以直接通过浏览器上传本地文件到网盘

分析一下 chrome://downloads/#upload的上传功能引用了

http://115.com/static/browser/download/js/upload.js

那么就代表只要取得115.com的域就有可能操作chrome://downloads/#upload
先看看upload.js

var init = function () {
        _TCache.Uploader = window['uploadInterface'];
        if (_TCache.Uploader) {
            UPLOAD_CONFIG_NEW.target = "U_1_0";
            UPLOAD_CONFIG_NEW['use_type'] = 2;
            UPLOAD_CONFIG_NEW['file_range'] = {
                "2": "0-67108864", "1": "67108864-0"
            };
......

        Install: function () {
            if (!window['uploadInterface']) {
                alert('控件未初始化');
                return false;
            }
            return true;
        }
    }
......

里面的方法很多 直接调用uploadInterface.CreateUploadDragTask方法来上传文件

function (path, target) {  native function NativeCreateUploadDragTask();  return NativeCreateUploadDragTask(path, target);}

target就是初始化配置里面的UPLOAD_CONFIG_NEW.target = "U_1_0";
代表在网盘的目录ID

uploadInterface.CreateUploadDragTask("C:\/xxx","U_1_0")



这样就能调用浏览器的上传了

\

二:上传文件的方法分析出后就要找特权域了

刚才提到115.com就是了,直接在主站找到一个反射xss

http://115.com/xhprof/callgraph.php?run=xxx

但是有chrome 的xss auditor

\

最近老外爆出的一个bypass也过不了

这个bypass在最新版的chrome都过了,但是在115浏览器就过不了。
后来经@phithon给的一个旧版chrome的bypass绕过了,因为115内置的chrome版本比较老,所以最新的bypass对他也不适用。
最后得出的bypass是因为chrome对ISO-2022字符编码没有进行检测
所以可以利用ISO-2022的编码来绕过

http://115.com/xhprof/callgraph.php?run=%3Cmeta%20charset=ISO-2022-KR%3E%3Cimg%20src=1%20onerror%0f=alert(1)%3E

\

(此tip在三年前就被老外提出了,现在在chrome早已修复,但有些使用较旧chrome内核的浏览器有可能存在)
三:
特权域上的xss解决了。另外由于文件是上传到对方账号的网盘上,所以我们要登陆到对方的网盘才可以拿到我们窃取的文件。本来是想着直接利用xss到cookie就可以登陆别人网盘拿到窃取到的东西了,但却发现115启用了httponly

\

然后就找了好几天能突破httponly的地方,但没有找到.后来就想到了一个猥琐的方法,把对方登陆的网盘账号,换成自己的网盘账号,不就可以拿到盗窃的文件了.
这里就想到用csrf的方式来登陆自己的账号,也不需要去分析115的登陆加密算法
登陆时直接抓包

\

把所有字段都写成一个表单自动提交

漏洞证明:

最后给出EXP:



以上表单上的字段都要自己抓包去替换哦,生成出来的登陆包数据是长期有效的,短时间内不会失效,可以重复使用登陆.

\
\

成功窃取到指定路径的文件

顺便把代码放到我的服务器上吧

测试地址:http://115browser.com/115_getfile_wooyun.html

修复方案:

1 修复主站XSS;

2 加强边界权限控制。

漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-09-15 21:30

厂商回复:

这实质上属于CSRF攻击,利用手法很精彩!但是攻击成本比较高。
1)由于验证机制不断加强,采用Cookie登陆等方式基本无效,同时高质量的XSS也很少,所以此处作为CSRF利用;
2)客户端加密也在升级中,有几处登陆字段验证暂时没开启,很快上线了;
3)最后利用步骤比较麻烦,需要穷举相关文件是否存在。
客户端APP和浏览器还在不断升级中!感谢支持! :)
赞下洞主的研究精神。

最新状态:

2016-01-18:目前版本均已修复,感谢关注115浏览器


相关文章
最新文章
热点推荐