WordPress CVE-2018-6389 DoS 漏洞修補

WordPress CVE20186389

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

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

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

According to wordpress.com, the WordPress platform powers 29% of the worldwide internet websites. In this article I am going to explain ...

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 和記憶體消耗緩慢增長。

DoS tool for HTTP requests (inspired by hulk but has more functionalities) - Quitten/doser.py

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

WordPress DoS – CVE-2018-6389
“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.
Advertisement

修補方法:

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

bash 腳本下載:

Fork includes patch for DoS vulenrability (CVE-2018-6389) - Quitten/WordPress

使用 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 防火牆的方法來阻擋,之後我就忘了這回事。

幾天前報出了個可能可以癱瘓 WordPress 網站的消息,透過大量對 load-scripts.php 的請...

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

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

參考資料:

Fork includes patch for DoS vulenrability (CVE-2018-6389) - Quitten/WordPress

發現漏洞作者 Tawily

According to wordpress.com, the WordPress platform powers 29% of the worldwide internet websites. In this article I am going to explain ...

Featured Photo 攝影師:fotografierende,連結:Pexels

Follow me

yungke

視咖啡如命的癮君子,沒有厲害的技術,只會小打小鬧的電腦工程師,其實是個打雜小弟,修電燈、水管也都是我的工作。
yungke
Follow me
Advertisement

Follow Me

查看本文
喜愛 Like 點擊數!!
Back to top