WordPress CVE-2018-6389 DoS 漏洞修補

·

在 WordPress CMS 平台中發現了一個應用程序級別的 DoS 漏洞,攻擊者利用該漏洞可以用很小的頻寬來達到網絡級 DDoS 攻擊的效果,達到癱瘓 WordPress 網站的目的。

這個編號 CVE-2018-6389 的漏洞,影響 WordPress 所有的版本,至今 WordPress 4.9.5 版本也還沒修復這個漏洞。

這是由以色列安全研究員 Barak Tawily 所發現,該漏洞以 load-scripts.php 的方式存在,以 WordPress 中的一個內置腳本,處理用戶定義的請求。

https://baraktawily.blogspot.in/2018/02/how-to-dos-29-of-world-wide-websites.html

load-scripts.php 文件只是為管理員用戶設計的,將多個 JavaScript 文件合併為一個請求,幫助控制台提高性能並加快頁面加載速度。

原本這應該是管理員在 wp-login 後才會有的工作,但是,CVE-2018-6389 的漏洞不須任何 login 方式,任何人都可以訪問該功能。

http://you-domain/wp-admin/load-scripts.php?c=1&load=editor,common,user-profile,media-widgets,media-gallery
WordPress CVE-2018-6389 DoS

當網站加載時 load-scripts.php 會根據 URL 中的每個 name 去尋找對應的 JS 文件,並把其中的內容添加到一個單獨的文件,然後發送回用戶的 web 瀏覽器。

CVE-2018-6389 至今仍未修補,並影響過去九年發布的所有 WordPress 版本☹️

攻擊者可以強制 load-scripts.php 通過將其名稱傳入 URL 來通過單個請求調用所有現有的 JavaScript 文件,測試人員使用 Python 腳本 (doser.py),這樣的操作將導致服務器上的 CPU 和記憶體消耗緩慢增長。

https://github.com/Quitten/doser.py

一般的主機服務器來說,單個請求可能不夠威脅,但如果對同一個 URL 進行大量並發請求,則可能會導致服務器當機。

YouTube video

“It is time to mention again that load-scripts.php does not require any authentication, an anonymous user can do so. After ~500 requests, the server didn’t respond at all any more, or returned 502/503/504 status code errors,”

Tawily says.

修補方法:

在 GitHub 有釋出修補過的 WordPress CMS 程式,研究人員建議用戶不要安裝此類修改過的 CMS,最好使用修補程式來修補 CVE-2018-6389 漏洞,研究人員也發佈了 bash 腳本,提供大家下載來修復該漏洞。

bash 腳本下載:

https://github.com/Quitten/WordPress/blob/master/wp-dos-patch.sh

使用 Notepad++ 編輯器,將該腳本複製下來,儲存文件名稱為 wp-dos-patch.sh

使用 FTP 上傳該腳本至你的 WordPress 網站目錄下,例如:/ var / www / you-domain / htdocs /

SSH 以 root 權限登入主機,進入你的 WordPress 目錄:

cd /var/www/you-domain/htdocs/

給於執行權限:

chmod +x wp-dos-patch.sh

執行修補程式:

./wp-dos-patch.sh

成功修補,如圖:

WordPress CVE-2018-6389 DoS

如果出現 /bin/sh^M: bad interpreter: No such file or directory 的錯誤提示,請安裝 dos2unix 程序。

apt-get install dos2unix

執行 dos2unix

dos2unix wp-dos-patch.sh
dos2unix: converting file test_script.sh to UNIX format ...

在執行一次 ./wp-dos-patch.sh,應該就沒問題了。

成功執行修補程序後,再執行一次 load-scripts.php,就會進入 WP-login.php 的登入後台頁面:

http://you-domain/wp-admin/load-scripts.php?c=1&load=editor,common,user-profile,media-widgets,media-gallery

無論如何,在執行該腳本之前,請確保您有完整的網站備份,若有任何錯誤,可以快速恢復您的網站。

結語:

在 2 月份時,WordPress 社群就有人分享這個 CVE-2018-6389 漏洞訊息,使用 Fail2ban 防火牆的方法來阻擋,之後我就忘了這回事。

https://www.4rbj4.com/421

前幾天客戶分享了修補程序給我,才想起這個漏洞,到了 4.9.5 版了還是存在,可能沒甚麼災情,網路上討論的也不多,大家就沒這麼重視。

使用 Fail2ban 防火牆或 wp-dos-patch.sh 修補都是不錯的方法,或是先放著不管,等 WordPress 官方升級程式,看會不會修正這個瑕疵。

參考資料:

https://github.com/Quitten/WordPress/blob/master/wp-dos-patch.sh

發現漏洞作者 Tawily

https://baraktawily.blogspot.tw/2018/02/how-to-dos-29-of-world-wide-websites.html

hosted by kinsta

Comments

發佈留言

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

Hey, 想嘗試 Kinsta 主機嗎?

18748

Kinsta 高效能主機

wPowered Starter 方案

馬上訂購

18749
Your Mastodon Instance