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

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

缺陷编号:wooyun-2013-020440

漏洞标题:QQ空间某功能缺陷导致日志存储型XSS - 7

相关厂商:腾讯

漏洞作者: gainover

提交时间:2013-03-22 09:13

修复时间:2013-05-06 09:14

公开时间:2013-05-06 09:14

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

跑去看了上一个问题的JS文件,腾讯已经修复了,但是离那处代码不远处,有一个函数名引起了我的注意,于是。。。

详细说明:

1. 又跑去看了下content_gridsblog.js,昨天刚发的漏洞已经修补咯。但是这个文件中的第一个函数引起了我的注意。
function flashGetData(){return PageScheduler.blogInfo.getGridData();}
flashGetData,从这个文件名,以及我之前自己写FLASH的习惯,这个函数应该是开发人员从FLASH里调用JS中数据的函数接口。也就是说,getGridData()的返回值会被放入FLASH中调用。
2. 那么一个问题就来了,这些数据进入FLASH后,FLASH中会不会存在问题呢?于是我们找到要调用这个数据的FLASH。
/qzone/newblog/v5/flash/GridsBlog.swf
反编译之。可以看到FLASH中确实调用了flashGetData这个函数。

1.jpg


接着获取到的_local4进入了__onSetUserData
3. 定位 __onSetUserData

2.jpg


数据进入了 CommonVars.getInstance().setUserData
4. 定位 setUserData(

3.jpg


可以看出数据都进入到了this.userData
5. 接下来,我们要看userData在哪些地方被使用了呢?
先大概搜索了下,发现使用userData的地方比较多,不是很好办!
只能采用从上至下的方法,根据软件中类的结果, Main 这个类应该为入口,

4.jpg


我们从它开始看起。
类构造函数Main() ---> init() --> __checkInit(),接着3个函数入口,
this.initData();
this.initView();
this.initEvents();
其中 initData() 函数体被 if (this._state == "edit"){...} 围绕,跳过之。
而 initView() 函数中的 bgURL(背景地址)这个单词,比较有吸引力,如下图:

5.jpg


来自userdata的bgURL赋值给了_local5
6. 我们继续往下跟踪

6.jpg


_local5进入了一处new BackGroundNavi,那么我们来看看BackGroundNavi这个class

7.jpg


如上图,可以看到_local5最终进入了 BackGroundNavi的 this._viewURL
7. 我们往下看看哪些地方调用了this._viewURL

8.jpg


this._viewURL 进入 this._bg.loadPic 函数。
8. 定位 this._bg.loadPic,_bg为Background类,我们查找这个类,并定位到它的loadPic方法

9.jpg


最终地址参数进入了一个loader中。loader的类型为ExtLoader, 而ExtLoader代码为:

public class ExtLoader extends Loader {
public var userData:Object
}


9. 最后,我们回溯回去,既然ExtLoader继承自Loader,而这个Loader又load了一个地址,而这个地址是来自userdata的bgURL,
而userdata的数据来自JS中的PageScheduler.blogInfo.getGridData(),
数据中的bgURL我们又是可控的,那么这里显然就是存在XSS问题了。
10. 找到我们提交的数据中 bgURL的部分,修改为我们指定的外部FLASH文件,http://xsst.sinaapp.com/Xss.swf,提交数据,

10.jpg


使用大号查看测试号日志,成功执行XSS。

11.jpg


漏洞证明:

见详细说明,IE和chrome均可。

修复方案:

1. 在服务器端对bgURL参数做判断过滤。
或者
2. 在FLASH中,对bgURL做判断过滤。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2013-03-22 13:39

厂商回复:

非常感谢您的报告。这个问题我们已经确认,正在与业务部门进行沟通制定解决方案。如有任何新的进展我们将会及时同步。

最新状态:

暂无


漏洞评价:

评论

  1. 2013-03-22 09:14 | 梧桐雨 认证白帽子 ( 核心白帽子 | Rank:1576 漏洞数:184 | 关注技术与网络安全)

    沙发,火前留名

  2. 2013-03-22 09:24 | As0n ( 路人 | Rank:4 漏洞数:3 | 我是技术宅,求交流,求基友)

    神人啊,比SuperHei都牛逼

  3. 2013-03-22 09:28 | 孤独雪狼 ( 普通白帽子 | Rank:710 漏洞数:64 | 七夕手机被偷,这坑爹的七夕啊 。。。。)

    前排留名

  4. 2013-03-22 09:30 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:170 | 力不从心)

    这个···连载了?

  5. 2013-03-22 09:45 | 心伤的瘦子 ( 普通白帽子 | Rank:147 漏洞数:21 | 严肃点~此号为虚拟小号,并不存在实体...)

    二哥这个月完爆QQ空间团队。QQ空间团队:“恨死你这个乌云老二了,这个月的绩效考核又被你搞没了!!怒~~”

  6. 2013-03-22 09:54 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @心伤的瘦子 赞同下~

  7. 2013-03-22 10:06 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:41 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    二哥,你这是要刨人家组祖坟啊?

  8. 2013-03-22 10:12 | 冻心 ( 路人 | Rank:5 漏洞数:3 | 爱wooyun 爱生活!)

    神人

  9. 2013-03-22 10:17 | 猥琐 ( 路人 | Rank:6 漏洞数:2 | 学习什么的最重要!)

    已经埋伏于回家路上

  10. 2013-03-22 10:25 | 黑色的屌丝 ( 路人 | Rank:27 漏洞数:5 | →_→→_→)

    腾讯又要加班了

  11. 2013-03-22 10:33 | 褪色的黑 ( 实习白帽子 | Rank:68 漏洞数:20 | 啄木鸟。。。。。。。。。。)

    人家程序员的饭碗要丢了。。

  12. 2013-03-22 10:44 | 小胖子 认证白帽子 ( 核心白帽子 | Rank:1727 漏洞数:125 | 如果大海能够带走我的矮丑...)

    哈哈哈哈哈~二哥碉堡了!!!!!!!!!!!!

  13. 2013-03-22 11:35 | 苏南同学 ( 实习白帽子 | Rank:41 漏洞数:5 | 苏南同学,就是苏南同学~~~)

    哎呀,哎哎呀,果断追星了我。gainover就是偶像啊~~~

  14. 2013-03-22 14:04 | none ( 实习白帽子 | Rank:40 漏洞数:5 | 十次十次啊 hack it then know more~)

    二哥过完年回来了

  15. 2013-03-22 15:15 | Jannock 认证白帽子 ( 核心白帽子 | Rank:2278 漏洞数:202 | 关注技术与网络安全(招人中,有兴趣请私信...)

    偶像!求带呀。。

  16. 2013-03-22 17:10 | Blackeagle ( 实习白帽子 | Rank:62 漏洞数:10 | 向WooYun致敬)

    @Jannock 哈 一哥都现身了

  17. 2013-04-22 16:38 | lucky ( 普通白帽子 | Rank:409 漏洞数:81 | 三人行必有我师焉########################...)

    学习了!二哥给力呀!

  18. 2013-05-06 09:47 | VivenChen ( 路人 | Rank:8 漏洞数:1 | 平平淡淡过日子)

    厉害

  19. 2015-04-19 23:50 | 明月影 ( 路人 | Rank:12 漏洞数:6 | 学姿势,学思路。)

    js代码审计。