WordPress是一種使用PHP語言開發的博客平臺,用戶可以在支持PHP和MySQL 數據庫的服務器上架設自己的網志。也可以把WordPress 當作一個內容管理系統(CMS)來使用。近日,國外安全研究人員公布,WordPress在部分功能實現上采用了不安全的第三方組件,導致XSS漏洞,當攻擊者誘騙管理員點擊,攻擊成功可以直接GETSHELL。
詳細說明:
原文:https://nealpoole.com/blog/2012/05/xss-and-csrf-via-swf-applets-swfupload-plupload/
對wp-includes/js/swfupload/swfupload.swf進行反編譯分析,盡管swfupload.swf其對傳入ExternalInterface.call的第二個參數進行了安全編碼,但對于函數名,即ExternalInterface.call的第一個參數沒有進行安全編碼。www.2cto.com 而函數名中的部分字符可控,造成xss漏洞。
this.movieName = root.loaderInfo.parameters.movieName;
...
this.flashReady_Callback = "SWFUpload.instances[\"" + this.movieName + "\"].flashReady";
...
if (ExternalCall.Bool(this.testExternalInterface_Callback)){
ExternalCall.Simple(this.flashReady_Callback);
this.hasCalledFlashReady = true;
}
=================
class ExternalCall extends Object{
...
public static function Simple(param1:String) : void
{
ExternalInterface.call(param1);
return;
}
漏洞證明:
http://www.80sec.com/wp-includes/js/swfupload/swfupload.swf?movieName="])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
修復方案:
暫時刪除swfupload.swf,等待官方更新。