WordPress是著名的開源CMS(內(nèi)容管理)系統(tǒng)。近日,在4.0版本以下的Wordpress被發(fā)現(xiàn)存在跨站腳本漏洞(XSS),新版本的Wordpress已經(jīng)修復了這些問題。為了安全起見,建議站長們盡早更新到WP新版本。 該漏洞是由芬蘭IT公司Klikki Oy的CEO Jouko Pynnonen發(fā)現(xiàn)的,只存在于Wordpress4.0以下的版本中。據(jù)調(diào)查得知全球有86%的Wordpress網(wǎng)站都感染了這一漏洞,也就意味著全球數(shù)百萬的網(wǎng)站都存在著潛在的危險。一些知名網(wǎng)站也使用了Wordpress軟件,如Time、UPS、NBC Sports、CNN、Techcrunch 和FreeBuf:) 漏洞概述 WordPress中存在一系列的跨站腳本漏洞,攻擊者利用跨站腳本偽造請求以欺騙用戶更改登錄密碼,或者盜取管理員權(quán)限。 如Jouko Pynnonen解釋道: 當博客管理員查看評論時,評論中的漏洞代碼會自動在其Web瀏覽器上運行。然后惡意代碼會偷偷接管管理員賬戶,從而執(zhí)行管理員操作。 為了證明他們的觀點,研究人員創(chuàng)建了一個漏洞利用程序(exploits)。利用這個exploits,他們創(chuàng)建了一個新的WordPress管理員賬戶,改變了當前管理員密碼,并在服務器上執(zhí)行了攻擊PHP代碼。 漏洞分析 問題出在wordpress的留言處,通常情況下留言是允許一些html標簽的,比如、、等等,然而標簽中有一些屬性是在白名單里的,比如標簽允許href屬性,但是onmouseover屬性是不允許的。 但是在一個字符串格式化函數(shù)wptexturize()上出現(xiàn)了問題,這個函數(shù)會在每一個留言上執(zhí)行,函數(shù)的功能是把當前的字符轉(zhuǎn)義成html實體,比如把“”轉(zhuǎn)義為“”。為了防止干擾html格式,wptexturize()首先會以html標簽為標準把文本分成若干段,除了html標簽,還有方括號標簽比如[code]。分割的功能是由下列正則表達式完成的。 在wp-includes/formatting.php代碼的第156行: $textarr = preg_split(‘/(.*|\[.*\])/Us’, $text, -1, PREG_SPLIT_DELIM_CAPTURE); 但是如果文章中混合著尖括號和方括號[]會造成轉(zhuǎn)義混淆,導致部分代碼沒有轉(zhuǎn)義。 攻擊者可以通過這個漏洞在允許的HTML標簽中注入樣式參數(shù)形成XSS攻擊,比如通過建立一個透明的標簽覆蓋窗口,捕捉onmouseover事件。 漏洞利用測試 以下代碼可以用于測試 [[” NOT VULNERABLE] 修復建議 這一漏洞很容易被攻擊者利用,WordPress官方建議用戶盡快更新補丁,而在新版WordPress 4.0.1已經(jīng)修復了所有的漏洞。 WordPress官方于11月20日發(fā)布了官方補丁,目前大多數(shù)的WordPress網(wǎng)站上都會收到補丁更新提醒通知;如果有一些其他原因使得你無法更新補丁,Klikki Oy公司還提供了另外一個解決方案(workaround)可以修復該漏洞。 wptexturize可以通過在wp-includes/formatting.php開頭增加一個返回參數(shù)避免這個問題: function wptexturize($text) { return $text; // ADD THIS LINE global $wp_cockneyreplace; 額外提醒 如果你使用的是WP-Statistics WordPress插件,你也應該更新補丁。因為這些插件上也存在跨站腳本漏洞,攻擊者同樣可以實施攻擊。
成都創(chuàng)新互聯(lián)公司主營丘北網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app軟件定制開發(fā),丘北h5成都微信小程序搭建,丘北網(wǎng)站營銷推廣歡迎丘北等地區(qū)企業(yè)咨詢
上個月下旬,wordpress低調(diào)地發(fā)布了4.1版本,本著與時俱進的態(tài)度,我決定盡早升級,在網(wǎng)站后臺點擊更新,等待了很久,出現(xiàn)了空白頁面,反復折騰了七八次,還是無法升級;上網(wǎng)查找了很多資料,試了很多方法,最好手動升級成功了。
回想這次坎坷的網(wǎng)站升級之路,主要原因可能是中途換過主機環(huán)境,一些文件夾權(quán)限或服務器配置有過變更,導致升級時程序無法替換文件,讓自動升級失敗。
為了以后,大家可以從容地面對類似的情況,不再糾結(jié)很久再做決定;下面,還是簡單羅列一下wordprss自動升級失敗的原因及解決方案。
網(wǎng)絡問題
現(xiàn)象:點擊更新提示,瀏覽器右下角一直提示連接域名,然后沒有然后了。
原因:wordpress的服務器在國外,國內(nèi)主機去訪問,速度有時候不穩(wěn)定。
處理方案:建議換個時間去更新,實在不行直接選擇手動升級。
文件權(quán)限問題
現(xiàn)象:點擊更新提示,要求輸入FTP賬號、密碼什么的,linux主機較多出現(xiàn)。
原因:出現(xiàn)這個提示,一般是指文件夾沒有寫入權(quán)限;網(wǎng)站程序更換系統(tǒng)環(huán)境時,好比從A主機到B主機,文件夾權(quán)限可能沒有正確傳遞,很容易出現(xiàn)這種情況。
處理方案:可以直接輸入FTP賬號、密碼;部分VPS或云主機,沒有開通過FTP,可以賦予網(wǎng)站目錄www用戶權(quán)限,命令是chown
-R
www
/home/web/wordpress;當然,還可以用winscp等工具登陸ssh,直接鼠標右鍵修改文件夾權(quán)限。
環(huán)境配置問題
現(xiàn)象:點擊更新提示,看起來在正常更新,過會兒停留在空白頁面。
原因:出現(xiàn)這個提示,原因有很多,好比開啟了防目錄跨站功能。
處理方案:如果是虛擬主機,聯(lián)系空間商處理;如果是VPS或云主機,可以去主機控制面板或防火墻軟件上,暫時取消掉類似的安全設置。
至于怎么取消,要看具體情況,一般是設置php.ini文件,搜索open_basedir,在前面加上#注釋掉;部分防火墻軟件,也有可能有類似的功能,限制了網(wǎng)站程序目錄權(quán)限。當然,為了安全,不建議取消防跨站功能,可以通過手動升級來替代。
除開上面幾種常見的情況,有時候可能會遇見更奇怪的情況;這個時候,不妨手動升級程序,只要簡單五步,即可順利升級到最新版的wordpress程序。
手動升級wordpress
1、登陸網(wǎng)站后臺,暫停正在使用的插件,備份數(shù)據(jù)庫及網(wǎng)站;
2、到wordpress官網(wǎng)下載最新的程序,壓縮上傳到網(wǎng)站根目錄;
3、解壓覆蓋網(wǎng)站目錄下的wp-admin、wp-includes文件夾;
4、解壓覆蓋根目錄下面的其它文件(wp-config.php除外);
5、訪問http://域名/wp-admin/upgrade.php升級,按提示操作。
注意事項:注意備份網(wǎng)站和數(shù)據(jù)庫,替換過程中,保留wp-content目錄(主題目錄,非常重要)、wp-config.php(數(shù)據(jù)庫配置文件,非常重要)、robots.txt(一般重要)、favicon.ico(一般重要)等文件。按這個流程操作,99%可以正常升級;若依然升級失敗,可能是數(shù)據(jù)庫或其它配置壞了,建議先默哀,再查找原因。
本文由不否網(wǎng)
提供,歡迎轉(zhuǎn)載、分享、交流。
其它答案沒有答到點上。
我的解決方法是直接在入口文件index.php里,過濾url
$url=$_SERVER['REQUEST_URI'];
判斷$url,凡帶有script 字符匹配的,即返回403代碼
輕松解決這個問題!