漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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错误时会直接放回以下内容:
可以看到referrer被返回来了,而且页面的Content-Type如下:
于是乎我就开始寻找构造XSS的过程。在Chrome和Firefox下,referrer都会被进行url encode导致无法插入HTML标签,因此这里我就没有深入。而在IE下,referrer是按照原始请求的格式传回给该接口的服务端,而这个接口没有经过任何过滤就直接返回了,所以在IE下,我们可以通过referrer进行XSS。具体构造过程如下:
设想过程,访问URL
然后跳转到:http://book.weibo.com/newcms/i/weibo_send.php中,则可以完成XSS。
不过遇到第一个问题就是上述请求会被IE的XSS过滤器拦截,怎么办呢?我想到的是关闭它,为什么?因为他拦截的是我们自己的域名啊!于是在我们接口的响应头中返回一个头部信息:
关闭之后一切好办了,插入一个img标签,在onerror的时候eval一下一个字符串加载我们服务端的js文件,完成攻击。
漏洞证明:
1. IE下登录微博
2. 访问以下URL
3. 加载了远程代码并执行
用到的代码及过程的截图可以看我这个secret gist: https://gist.github.com/zhchbin/e8caa88cd9841c47b6f1
修复方案:
过滤
版权声明:转载请注明来源 zhchbin@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:2
确认时间:2016-03-30 10:19
厂商回复:
感谢关注新浪安全,问题修复中。
最新状态:
暂无