問題描述

我負責大量共享託管伺服器的安全性。他們大多數都在使用 WordPress 網站。每個伺服器至少有 500 個 WordPress 網站。

在我看來,WordPress 的問題開始於弱密碼。大多數的網站管理員密碼很弱,使用弱密碼網站被利用並用於各種惡意活動。

現在我的計劃是找出 WordPress 網站的弱密碼,並強制將管理員密碼更改為其他強大的密碼。所以 WordPress 可以保護,我的伺服器不會有麻煩。

知道儲存的 WordPress 密碼的強度是什麼?

最佳解決方案

Bruteforce 雜湊

您可以強制儲存在資料庫中的雜湊值。

WordPress 使用 phpass 進行雜湊。預設情況下,WordPress 不使用 blowfish 或類似的,但只是 md5 的迭代計數為 8192. 如果你只想找到真正不好的密碼,強制是肯定可行的。

但我認為這是一個相當大的違反使用者對您的信任,所以我不會推薦這種方法。

登入時分析其密碼

您可以新增一個指令碼來擷取對 WordPress 登入指令碼的所有請求,並記錄或分析密碼,因為它們是純文字的。

當然,一旦使用者實際登入,這隻會獲得較弱的密碼。如果他們已經放棄了自己的網站或者非常活躍,可能需要一段時間才能發現他們使用了弱密碼。

我認為這是一個比強制雜湊更大的違規行為,它也帶來了一些安全問題 (如果你以明文方式儲存密碼,這顯然是一個問題,但即使不是這樣,你可能會不小心將一些資訊儲存在可能有助於攻擊者的分析) 。

實施密碼策略 (強制使用者更改密碼)

您可以實施密碼策略。當使用者提交新的密碼時,您會檢查是否符合您的策略 (理想情況下,這將發生在 server-side,而不是 client-side 透過 JavaScript) 。

編寫良好的密碼政策很困難,所以請看現有的政策來幫助你。

當然,老密碼也不受策略的影響,所以您需要強制使用者更改舊密碼以符合該策略

限制傷害

執行強密碼當然可以是一個好主意,但理想情況下,被駭客攻擊的 WordPress 例項不應該真正影響您作為網站管理員。

一旦攻擊者獲得了 WordPress 安裝的訪問許可權,您應該想限制這些損害。理想情況下,您只希望只有一個例項受到影響,而不是整個伺服器 (因此您可能會擔心攻擊者將不雅內容放在網站上 – 就像有效的使用者可能會這樣做 – 但不是關於程式碼執行或其他惡意活動) 。

這是一個相當廣泛的話題,但有一些要點包括:DISALLOW_FILE_EDIT,限制了外掛的使用 (因為它們遠遠不如 WordPress 本身安全地編碼),不允許使用 JavaScript(例如,使用多種功能,只有 super-admins 有權釋出 JavaScript,而不是管理員) 等

次佳解決方案

我不知道這是甚麼可能的。當您選擇密碼時,它會在資料庫中儲存雜湊。來到雜湊演演算法時沒有反向的工作。

根據我的經驗,密碼強度的指令碼位於 www.example.com/wp-admin/js/password-strength-meter.js 中,this 是指向它的連結。

您可以在此處更改密碼的級別和百分比,因此您可以將強制密碼設定為 100/100 。

而且,如果您希望客戶端檢查密碼強度,可以使用 application 來提供密碼。

這裡不可能做一些逆向工程,另外還有很少的外掛強制使用者獲得強密碼。

第三種解決方案

好訊息是,您可以更改使用者密碼,壞訊息是您無法看到它們.Wordpress 是如此強大,即使在資料庫中,它使用單向加密儲存密碼,它不只是一個 md5 雜湊,您可以轉換,它不是即使是序列化資料,對於密碼 test123,您將獲得類似 $P$BjW8o9Dm1vC5bwAcP1iAdNVm0lbvn 的內容,即使您更改資料庫中的密碼欄位而不使用加密,也不會工作。

如何更改密碼

我相信你知道這一點,但我會把它留在這裡。您可以使用管理員許可權輸入您的 wordpress 資訊中心,去使用者,找到一個使用者,這部分是為了您的目的是壞的,因為您必須點選生成新密碼,它會給你一些隨機的字母和符號湯,你可以用自己的編輯,即使這樣你也看不到密碼。

第四種方案

隨著密碼的雜湊,測試其安全性的唯一方法是強制強制他們。收集常用的弱密碼列表,並對資料庫中儲存的雜湊進行測試。

除非您使用非常詳盡的密碼列表,否則這將不會捕獲所有弱密碼,但會濾除最弱的密碼。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。