CVE-2019-6703:WordPress Total Donations外掛漏洞
Wordfence安全研究人員近期發現WordPress Total Donations外掛的多個關鍵漏洞。這些漏洞存在於所有版本的Total Donations外掛中,包括最新的2.0.5版本。惡意攻擊者利用該漏洞可以獲取受影響的WordPress網站的管理許可權。該漏洞CVE編號為CVE-2019-6703。
Access log
研究人員在調查分析中發現,在站點的access log中存在可疑的AJAX動作:
POST /wp-admin/admin-ajax.php?action=migla_getme POST /wp-admin/admin-ajax.php?action=migla_getme POST /wp-admin/admin-ajax.php?action=miglaA_update_me POST /wp-admin/admin-ajax.php?action=miglaA_update_me GET /wp-login.php?action=register
搜尋站點程式碼中的字串migla_getme和miglaA_update_me顯示安裝了Total Donations外掛,研究人員迅速發現了被利用的漏洞和攻擊者的工作流。
攻擊者犯了一個錯誤就是在請求的查詢字串中使用了?action=。WordPress的AJAX API認為$_GET['action']和$_POST['action']是一樣的,所以如果action傳遞到請求的POST主體中而不是query字串,活動就不會這麼明顯。
多個有漏洞的AJAX Actions
Total Donations在WordPress中一共註冊了88個不同的AJAX action,每個都可以通過查詢/wp-admin/admin-ajax.php來訪問(包括非授權的使用者)。研究人員已經確定這88個action中有49個可以被惡意攻擊者利用來訪問敏感資料、對站點的內容和配置資料進行非授權的修改,甚至完全控制有漏洞的站點。
還有一些其他值得思考的問題:
任意option更新致站點被黑
Total Donations外掛最急迫的漏洞就是允許非授權的使用者來讀取和更新任意的WordPress option。
函式migla_getme和migla_getme_array都允許非授權的使用者讀取任意WordPress option的值。
miglaA_update_me, miglaA_update_arr, miglaA_update_barinfo (等同於miglaA_update_me)可以被用來修改option的值。
migla_getme和miglaA_update_me可以被用來啟用users_can_register option,設定default_role為administrator。有了這些設定,任意使用者都可以在有漏洞的網站上以管理許可權自由註冊賬號,並執行惡意活動。
訪問、修改和刪除Stripe支付方案
Total Donations可以連線到Stripe作為支付處理器,並使用Stripe的API來定時支付。但沒有AJAX函式可以用來與這些特徵進行互動。
包括miglaA_stripe_addPlan, miglaA_syncPlan, miglaA_stripe_deletePlan在內的函式都可以被利用來對受影響的站點的經常性捐贈進行非授權的修改。
除此之外,結合了miglaA_update_me的任意option更新漏洞,攻擊者可以修改儲存Stripe API key的option來將進入的捐贈路由到完全不同的Stripe賬號。
其他漏洞
該外掛中還存在其他的漏洞,攻擊者利用這些漏洞可以獲取管理員許可權,並以此執行其他惡意活動。
函式miglaA_export_report是用來產生捐贈報告的,允許非授權訪問私有和未公佈的post。
miglaA_save_campaign和miglaA_save_campaign_creator都呼叫了內部函式updateACampaignCretor (sic),如果WordPress的wp_magic_quotes被繞過,那麼利用該函式的漏洞可以進行SQL注入;如果wp_magic_quotes沒有被繞過,也可以用來修改任意post的標題。
包括miglaA_test_email在內的多個action可能會被濫用來發送測試郵件到任意地址。這可能會通過觸發主機的收件箱中繼限制來發起收件箱DOS攻擊,或使受害者網站進入垃圾郵件黑名單中。
開發者響應
這些安全漏洞可以稱之為0 day漏洞,因為缺乏可用的補丁。從1月16日開始,研究人員持續聯絡Total Donations的開發者團隊以儘快修復該漏洞。但結果並不理想,Total Donations官網自2018年5月開始顯示coming soon。
關於該外掛的評論很多是缺乏產品支援,甚至有使用者3年前就抱怨沒有收到開發者的響應。
從目前的跡象來看,該開發者應該沒有繼續維護該專案,研究人員1月16日郵件聯絡後還沒有收到回覆。
建議
因為開發者目前聯絡不到,短期應該也無法提供補丁。因此研究人員建議使用者移除該外掛。