多數人以為暴力破解攻擊是駭客本人坐在螢幕前,一組一組去試你的網站密碼。事實剛好相反,現在網路上大多數的登入嘗試,鍵盤前面根本沒有人。Cloudflare 在《2026 Threat Report》裡的觀測資料顯示,94% 的登入嘗試來自機器人,真人只佔剩下不到一成;過去 3 個月內,更有 63% 的登入行為,用的是已經在別處外洩過的帳號密碼。
這些程式不是針對你的網站量身打造,而是對著同一個登入表單,用機器的速度反覆丟帳號密碼組合,一天能試上幾萬次,人力完全比不了。暴力破解攻擊(Brute Force Attack)指的正是這整套自動化猜密碼行為的統稱,做法是程式反覆嘗試使用者名稱與密碼的排列組合,直到剛好對中一組能登入的為止。WordPress 因為市佔率極高,又把登入頁預設擺在同一個固定位置,長年是這類自動化攻擊最愛鎖定的對象之一。
搞懂這套攻擊實際在做什麼、規模怎麼撐起來、為什麼偏偏挑上 WordPress,才看得出後台防護真正該守住的是哪幾個關卡,而不是只把密碼加長就以為沒事。先從暴力破解攻擊本身,跟另外兩種常被混用的手法有什麼差別講起。
暴力破解攻擊是什麼?和字典攻擊、憑證填充的差異
這三個詞在資安討論裡常被交替使用,但背後代表的手法不完全一樣。搞懂差異,你才看得懂自己網站後台日誌裡那些奇怪的登入紀錄,屬於哪一種攻擊。
帳號密碼靠電腦大量反覆嘗試才被猜中的基本邏輯
WordPress 官方的 Advanced Administration Handbook,對這類攻擊的定性很直接,攻擊者反覆嘗試使用者名稱與密碼組合,直到剛好命中一組能登入的為止。文件也點出這類攻擊的兩個特徵,通常是自動化,而且經常是分散式進行,靠的是殭屍網路,就算最後沒有真的破解成功,大量湧入的請求本身也可能拖垮網站效能。
這裡講的「反覆嘗試」不是駭客坐在鍵盤前手動輸入,而是程式跑迴圈,可能是純隨機字串窮舉,也可能是拿一份常見密碼清單一路試下去。OWASP 把這整類自動化猜測行為,歸類在自動化威脅編號 OAT-007(Credential Cracking)底下,官方定義是透過嘗試不同的使用者名稱與密碼組合,找出有效的登入憑證,涵蓋暴力破解、字典攻擊與純粹的猜測攻擊;這條定義底下還收了幾個常見別名,包括密碼噴灑(password spraying)、反向暴力破解(reverse brute force attack)與使用者名稱列舉(username enumeration)。也就是說,「暴力破解」在業界並不是單指一種打法,而是一整組猜密碼手法的統稱。
暴力破解、字典攻擊與憑證填充的手法差異
把三種手法拆開排比,差異其實很清楚。暴力破解窮舉所有可能的字元組合,理論上什麼密碼都試得到,只是越複雜的密碼要試的次數越多;字典攻擊只挑常見密碼、真人習慣用的字串去試,命中率通常比純亂試高,也快得多;憑證填充則完全不是「猜」,拿的是已經在別的網站資料外洩事件裡外流過的真實帳號密碼組合,直接去對另一個網站。
OWASP 把憑證填充另外獨立編為 OAT-008,定義是使用已經配對好的使用者名稱與密碼組合,去驗證一個或多個服務,跟 OAT-007 主動建構或猜測憑證組合的性質不一樣。這也是為什麼憑證填充的成功率通常遠高於純暴力破解,因為攻擊者手上那組帳密,很可能就是某個使用者真的在用、只是被另一個網站洩漏出去的密碼,不是隨機湊出來的。這三種手法能不能得逞,說到底都取決於背後能砸出多大的自動化規模,規模才是暴力破解攻擊真正可怕的地方。

殭屍網路把嘗試規模推到人力做不到的量級
人不可能一天手動打上幾萬次登入,能做到這種量級的,靠的是殭屍網路。
殭屍網路借用別人電腦和其他 WordPress 網站發動攻擊
殭屍網路的組成,一般想像是一堆中毒的個人電腦被駭客遠端操控,同時對著某個目標開火。但在 WordPress 的世界裡,殭屍網路的兵力來源不只如此,被駭的 WordPress 網站本身,也會被收編成攻擊「別的」WordPress 網站的節點。這也解釋了為什麼一個網站被攻破,傷害往往不會停在那個網站本身。
Wordfence 資安團隊就記錄過一個實際案例,超過 2 萬個受感染的 WordPress 網站,被串成一個殭屍網路,拿來對其他 WordPress 網站發動暴力破解。這些淪陷網站上被植入的腳本,鎖定的是目標網站的 XML-RPC 介面,對著它測試一組又一組使用者名稱與密碼;靠的是 XML-RPC 的 system.multicall 方法,讓攻擊者能把大量帳密組合塞進同一個 HTTP 請求裡一次送出,不必一組密碼發一次請求。這說明「WordPress 網站攻擊 WordPress 網站」不是假設情境,而是真實發生過、被記錄下來的攻擊型態。

現在多數登入嘗試已經不是人在操作
前面提過的 Cloudflare 觀測數字值得再拉回來看一次,94% 的登入嘗試來自機器人,不是真人在打字。換句話說,如果你的網站登入頁一天湧入上千次嘗試,裡面絕大多數根本不是有人真的想登入,而是程式在跑迴圈碰運氣。
過去 3 個月內,63% 的登入行為用的是已經在別處外洩過的帳號密碼,這代表光靠使用者自己把密碼設得夠複雜,已經不足以應付這個局面,因為問題往往不是密碼本身不夠難猜,而是那組密碼早就外流到攻擊者手上。這也是為什麼談防禦,重點要放在怎麼打斷自動化的節奏,而不是只在密碼強度這一件事上加碼。
WordPress 後台仍排在攻擊清單最前面的四個原因
這波自動化攻擊會挑上 WordPress 不是巧合,市佔率夠大、路徑好猜、資料庫還幫忙洩漏一半答案,連放大工具都是現成的。

市佔率四成起跳,划算的攻擊對象
攻擊者選目標,骨子裡也是一種投資報酬率的算計。同一套自動化工具或腳本,如果能打遍全網四成的網站,顯然比針對某個小眾 CMS 另外開發一套專屬攻擊工具划算得多。W3Techs 的統計顯示,截至 2026 年 9 月,WordPress 用於 40.3% 的全部網站,在「已知所用內容管理系統」的網站裡,佔比更達到 58.8%。
換算下來,市場上每兩個用 CMS 架站的網站,就有一個以上跑的是 WordPress,遠遠拉開跟其他任何一套 CMS 的差距。這解釋了為什麼自動化攻擊工具會優先鎖定 WordPress,同一套腳本能覆蓋的目標基數,沒有其他系統比得上。
登入路徑幾乎是公開的固定位置
WordPress 預設的登入頁在 wp-login.php,後台管理介面則在 wp-admin,這是開箱即用就固定的路徑,除非站長主動更改,不然幾乎每一個 WordPress 網站的登入表單都待在同一個地方。這跟其他系統可能要先摸索登入頁藏在哪裡不一樣,攻擊者不需要先偵察,直接就能命中登入表單所在位置。
這個固定路徑省掉的,是攻擊者原本得花時間做的一道工序。Wordfence 在 2023 年一年就攔截超過 1000 億次憑證填充攻擊,來自超過 7400 萬個不同的 IP 位址;能撐起這種量級的前提,正是攻擊者不必先摸索目標,可以把資源全部拿去衝嘗試次數,而不是浪費在找登入頁在哪。
使用者名稱不難被系統自己洩漏出去
暴力破解攻擊要成功,通常需要使用者名稱與密碼兩個變數都對;使用者名稱要是能被猜到或列舉出來,攻擊者等於先解決了一半的題目。美國國家漏洞資料庫(NVD)記錄的 CVE-2017-5487,說的正是這種情況,WordPress 4.7 到 4.7.1 之前的核心版本,REST API 的 /wp-json/wp/v2/users 端點沒有妥善限制文章作者的清單存取,讓未經授權的請求也能取得已發文使用者的帳號 ID 與使用者名稱等資訊,CVSS 3.0 評分為 5.3 分,屬中度風險。
WordPress 官方後續在 4.7.1 版限制了這個端點預設曝露的範圍,把這個管道補起來。這筆紀錄說明的重點不是這支漏洞本身有多嚴重,而是「使用者名稱外洩」不是危言聳聽,而是曾經真實存在、且被官方正式列管修補的安全紀錄。使用者名稱只要容易被猜到或撈到,暴力破解攻擊的難度就會跟著往下掉一大截。
XML-RPC 讓單次請求能夾帶大量密碼嘗試
前面提過的殭屍網路案例,用的就是 XML-RPC 這個放大器。xmlrpc.php 的 system.multicall 方法,原本設計是讓外部程式一次呼叫多個 API 功能,但也讓攻擊者能把一大串使用者名稱與密碼組合,包進同一個 HTTP 請求裡送出。對攻擊者來說,這代表不用對每一組密碼各發一次請求,少量的請求數就能換到大量的登入嘗試,還更容易繞過那些只看單一路徑高頻請求的簡單防護機制。
也因為這樣,WordPress 官方的開發者文件直接把 xmlrpc.php 列為暴力破解的常見放大目標,特別點名 system.multicall 方法。官方給的建議很清楚,如果網站沒有串接 Jetpack 或行動 App 發文這類需要用到 XML-RPC 的功能,就應該直接停用它;真的還需要用到,也應該對它做速率限制,不能放著不管。
一個帳號淪陷,拖累的不只是自己的網站
威脅原理講完,一組帳密被破解不是抽象風險,而是會實際觸發一連串後續動作。
後門、惡意管理員和垃圾內容,一次全部住進網站
Sucuri 在《2023 年度網站入侵報告》裡的統計,把後台淪陷之後常見的下游動作攤開來看,在 2023 年修復的受駭網站裡,49.21% 至少含有一個後門程式,55.2% 的受感染資料庫裡有惡意植入的管理員帳號,42.22% 被檢測到 SEO 垃圾內容,另外還有 39.1% 的受感染網站,在入侵當下 CMS 版本其實並未更新到最新版。
這組數字統計的是所有被入侵網站的下游痕跡,不是專門切出「因為暴力破解才淪陷」這個子集,但呈現的正是 CMS 類網站遭入侵後最常見的一組組合,留一道後門方便之後再進來、塞一個看起來正常的管理員帳號、在網站裡埋垃圾連結衝 SEO 排名。這些動作往往不是各自獨立發生,而是同一次入侵留下的痕跡組合。

網站淪陷後,反過來被徵召去攻擊其他 WordPress 網站
「你的網站」與「別人的網站」,其實是同一條攻擊鏈上的兩端。前面提過的 Wordfence 殭屍網路案例就是最直接的證據,超過 2 萬個受感染的 WordPress 網站,被收編成攻擊清單裡負責打下一個目標的其中一台機器。
也就是說,今天你的網站被暴力破解攻進去,它就不只是自己的損失,還可能變成明天攻擊別的網站的工具。這個因果閉環,正是為什麼後台防護不只是為了保護自己,某種程度上也是在替整個 WordPress 生態系擋下一波波自動化攻擊。
掌握攻擊原理,才看得出登入保護該守住的三個關卡
打贏這場仗,重點通常不在把密碼設到多複雜,而在把前面幾個攻擊環節,一個一個堵起來。

打斷自動化節奏,比單純加長密碼更有效
前面提到,94% 的登入嘗試來自機器人,本質上就是程式在跑迴圈碰運氣。既然如此,任何能打斷這個迴圈節奏的機制,像是登入失敗次數限制、延遲回應、或需要額外驗證步驟,效果都比單純把密碼字元數加長更直接。
把密碼加長,只是讓每一次猜測的成功率變得更低,並不會讓攻擊真正停下來,程式還是會照樣跑,只是要多花一點時間。相對地,打斷節奏是讓攻擊者原本能無限次嘗試的迴圈,變成試沒幾次就被擋下來,這才是從根本上改變攻防雙方的成本結構。
降低帳號被預測與列舉的可能性
暴力破解攻擊要成功,通常需要使用者名稱與密碼兩者都對,前面提過的 CVE-2017-5487 就是使用者名稱曾經被系統自己洩漏出去的例子。讓使用者名稱不容易被猜到或列舉出來,等於把攻擊者原本能省下的偵察工作,還給他重新做一次。
這件事的效果,不只是拉高攻擊難度,更是拉高攻擊成本。當使用者名稱也要靠猜,攻擊者要試的組合數量會呈倍數增加,原本一天能試幾萬次的迴圈,實際能命中的機率也會跟著往下掉。
收斂容易被放大濫用的入口
像 xmlrpc.php 這種能讓攻擊者用更少請求換到更多次嘗試的入口,本質上是在幫攻擊方降低成本,前面提到的 system.multicall 放大機制就是典型例子。收斂或限制這類入口,等於直接讓放大器失效。
這也是為什麼登入保護不能只看密碼夠不夠難猜這一個戰場,而是要同時處理自動化節奏、帳號可預測性,和這類容易被濫用的入口。三個關卡各自堵住一部分,合起來才撐得住現在這種九成以上流量都是機器人的登入環境。
暴力破解攻擊之所以能一直存在,不是因為手法多高明,而是因為便宜,一套腳本能同時打上百萬個目標,錯一次幾乎不用付出代價,錯個幾萬次總會撞到一組能用的。看懂它的運作邏輯,比死記幾個資安名詞更有用,知道對方在賭的是什麼,才知道該在哪個環節,讓這筆帳算不過去。
