在访问youku,查看任意带广告的视频时,都会去调用一个MTFlashStore.swf的回调函数jGetItem.
看看这个jGetItem的实现代码:
该Flash未进行Security.allowDomain的限制. 那么任意第三方都可以修改LSO中的数据,而LSO->用户存储->ExternalInterface.call,就导致存储XSS.
访问下面的POC代码,再观看任意带广告的Youku视频,例如:
http://v.youku.com/v_show/id_XNjIwNDI2NDI0.html?f=20383529&ev=1
就会触发XSS.
注:经过baidu, 了解到这个irs01.net可能是来自艾瑞(iResearch,互联网数据分析),但因为优酷受到影响,故报告到优酷(抱歉打扰了,:-))
建议对来自LSO中的数据进行检查.或者严格限制Security.allowDomain
注意:这里不能简单地修补jGetItem为读取并返回LSO,而不调用ExternalInterface.call, 那样同样会导致XSS.