漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2012-07762
漏洞标题:网易微博XSS礼包: 内容存储型(看了就中)+主页存储型+子页面XSS
相关厂商:网易
漏洞作者: gainover
提交时间:2012-06-01 08:41
修复时间:2012-07-16 08:42
公开时间:2012-07-16 08:42
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2012-06-01: 细节已通知厂商并且等待厂商处理中
2012-06-04: 厂商已经确认,细节仅向厂商公开
2012-06-14: 细节向核心白帽子及相关领域专家公开
2012-06-24: 细节向普通白帽子公开
2012-07-04: 细节向实习白帽子公开
2012-07-16: 细节向公众公开
简要描述:
目前几个有微博的网站,都快转遍了,网易还没检测。今天晚上就跑来对网易微博做了一次检测。发现3处XSS。
1. 内容存储型XSS,危害不解释,看到微博即中招。通杀所有浏览器
2. 微博主页存储型XSS,IE 6,7,8+兼容模式 有效
3. 微博子页面XSS。
具体见详细说明。
BTW, 求礼物...求礼物 ....
详细说明:
这里顺便分享下检测方式。
从小漏洞到大漏洞依次说。
----------------------------------------------------------
1. 子页面XSS。
习惯性的看一下网页的源码。 发现以下这么一段。
那么我们可以构造一个URL来执行我们的命令。
可是从代码里,我们可以看出,网易将 冒号:给过滤了
不过在IE下(测试时为win7+ IE9),我们可以通过以下方式绕过。
效果证明:
----------------------------------------------------------
2. 漏洞2,个人主页存储型XSS, 由于是在css里,用expression,对IE6,7及IE8以上兼容模式有效。
这个漏洞比较低级,我就不详细说了。
缺陷位置:微博换肤功能。
缺陷URL: http://t.163.com/user.do?action=updateUserConfig
缺陷参数:(4个)
profile_background_image_url
profile_background_pos
profile_background_fixed
profile_background_filled
缺陷原因:没有过滤(,),; ,导致可以对css进行闭合。
利用步骤:
POST http://t.163.com/user.do?action=updateUserConfig
POSTDATA
以上代码是调用外部JS了,这里我就不给截图证明了,安全人员肯定知道的。
----------------------------------------------------------
3. 微博内容存储型XSS,这个危害是显而易见的。
分享一下发现方法:
A. 首先,我个人比较喜欢测试多媒体功能,就试用了一下微博的音乐发送功能,发送的同时,也进行抓包。
可以看到抓包有2个请求。
B. 按照我一贯的思维方式,F12 打开 chrome 的调试工具,定位到刚发的那条微博上。
发现以下有趣的内容。
C. 可以看出那个地址就是播放的歌曲地址,也就是步骤A中,被转换为短网址的那个地址。
接着发挥俺的想象,推想一下。
如果微博的开发人员,是反向将短网址的内容,输出到这里,而且没有任何过滤的话,岂不是爽了?
如果真没过滤的话,我们可以构建以下代码进行XSS
songurl="http://www.xiami.com/song/1769227691"><img src=1 onload=alert(1) /><a
D. 带着这个想法,我们通过以下步骤来进行XSS。
E. 将含有恶意代码的网址转变为短网址
F. 将构建的短网址放入内容进行发送
G. 刷新我们的微博,会发现多了一条微博,并且弹出了cookies。 这证明了我们的猜想是对的~~ 为了进一步确定,我们可以再打开Chrome调试工具,看看
效果证明:
chrome下自己查看微博的弹窗:
IE下,用另外一个号关注了上面这个号之后,在自己的主页被上面的号发送的微博弹窗。
至于Firefox,我就不测试了,因为这段利用过程不存在浏览器兼容问题。
漏洞证明:
看详细说明~
修复方案:
1. 对于子页面的那个XSS,除了过滤冒号之外,应该判断一下,#!以后的内容,加强判断。
2. 对于个人主页的XSS, 多个最起码的正则判断吧,比如 profile_background_fixed 这个参数只有0和1,很好限制的。然后过滤 ()这种可能闭合css的字符。
3. 至于第3个XSS,在从短网址读取真实歌曲地址的时候, encodeURIComponent 编码一下所得到的真实地址,再输出即可!
版权声明:转载请注明来源 gainover@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:15
确认时间:2012-06-04 10:52
厂商回复:
感谢您对网易的关注,已经修复。
最新状态:
暂无