4月16号,国外发布了jwplayer一个未修复的XSS 0day。jwplayer是全球范围内今朝利用最遍及的flash播放组件,出格是国外浩繁在线爱情动作片网站。此前jwplayer曾爆出过一个XSS缝隙,影响很是遍及。
按照老外的描述,此次的标题问题主如果因为之前一个XSS缝隙没有修复完全,导致bypass再操纵。原始的标题问题是playerReady参数值未做过滤直接进进ExternalInte***ce.call导致可以履行肆意JS代码。在颠末官方的两次小版本补丁后,这个标题问题最终的修复方案是避免playerReady参数值中存在{}和()符号。而这类简单的修复是可以被绕过的。
原文给出的POC:
Example 1:
This example simply uses javascript:alert(1) as the value in window.name
Click Me
这里用到了两个特点,一个是a标签target的framename,一个是window.name的跨域传递的特点。在a等其他可利用的target属性的标签中我们常常利用的是_blank,_parent,_self,_top四个值,而framename我们很罕用到。framename相当于指定一个窗口的名称并将文档重定向到该窗口中进行措置,是以framename就相当于window.name。
这个POC就在a标签顶用javascript:alert(1)伪和谈作为了framename,缝隙URL指定location为window.name也就触发了url。我们一样可以用form等其他撑持target属性的标签来机关poc:
登录
但这类POC是需要交互的,就比较鸡肋了,其实我们可以改进成不需要用户交互的情势。既然framename是窗口的名称,那我们可以直接利用iframe并指定name为javascript:alert(1)。
如许我们的POC便可以主动触发了。