漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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下,其实是
2.在FF与Chrome等其他浏览器下,其实是
注意到这里都调用了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
漏洞证明:
修复方案:
怎么检查ExternalInterface.call的输入参数,就怎么处理callback的返回值吧
版权声明:转载请注明来源 neobyte@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:8
确认时间:2013-10-12 16:44
厂商回复:
感谢你对我们的支持与关注,该问题我们正在修复~~
最新状态:
暂无