避免 WordPress 被用作反射放大攻擊

之前我寫過一篇文章,使用 fail2ban 防止 Bind9 被用於 DNS 放大攻擊,萬萬沒想到,原來 WordPress 本身也可以用來進行放大攻擊,原理就是它的 pingback的 機制。

Pingback 是 WordPress 的一個網站之間互相通知工具,比如 A 博客引用了一個 B 博客文章的鏈接,那麼 WordPress 就可以自動幫你通知 B 博客,告訴博主你引用了他的文章。

這本來是一個很不錯的功能,但有一點——Wordpress 至今沒有為這個 Pingback 做安全檢測。Wordpress 在收到 Pingback 時會檢測來源站是否有效——這要和源站進行通信,但它並沒有檢測發來 pingback 和 pingback 裡攜帶的 ip 是否相同……

也就是說,發送上萬個包含另一個網站的 ip 的 pingback 給 100 個 WordPress,那麼就可以通過反射放大成 100萬 次 TCP 連接給那個網站!

這不就是 拒絕服務 麼 0.0

所以,還是關了它好了……

關閉 Pingback 和 Trackback

關閉 WordPress 的 pingback

關閉 WordPress 的 pingback

既然這個關閉了,那麼平時如果你不用到 WordPress 的 XML RPC,也一起關了算了。這個 RPC 是用來給用戶遠程調用 WordPress 的,比如一個客戶端…… 如果你用得到,就算了。

關閉 WordPress XML-RPC 服務

這個服務在早期實際上是有漏洞的,後來直到現在,實際上 XML-RPC 服務的漏洞早已經修復(令人驚訝的是 pingback的 的漏洞卻一直保留著——都這麼多年了……)

在你主題的 functions.php 裡,加入如下語句即可關閉:

禁止 xmlrpc.php 訪問

如果你使用 Nginx 服務,那麼在你的 nginx 站點配置中加入

這樣就完全禁止這個文件的外部訪問了。

後記

要不是人家找上門說我的博客被用來反射放大攻擊攻擊人家網站,我還真不知道這個四五年前的安全漏洞 WordPress 到現在都沒有修復……說實在的這個功能還挺好用的,我因為它,抓到了好幾個粗心大意偷我文章假裝原創的小伙……😂

也有朋友說,不修補這個漏洞而直接禁止這個功能,就好像醫生通過殺死病人來治病……是沒錯啦,但考慮到每次 WordPress 更新升級有可能覆蓋掉這個文件(並且不一定修復這個漏洞),並且通常情況下我也不使用這個功能,就乾脆關閉好了。

參考鏈接

本文由 落格博客 原創撰寫:落格博客 » 避免 WordPress 被用作反射放大攻擊

轉載請保留出處和原文鏈接:https://www.logcg.com/archives/3351.html

關於作者

R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

註釋

  1. 你好, 原始作者在這裡. 對不起,我不懂中文 ; 但是據我了解,您建議完全關閉WordPress引用機制 ?

    總的來說這不是一個好主意, 在我看來,就像是醫生開槍治療他. 而不是採取激進的措施, 文章中討論了一個簡單的修復方法 : 只需檢查xmlrpc的調用者是否使用與報告的引用網站相同的IP. 這為討論的擴增途徑滅菌.

發表評論

您的電子郵件地址不會被公開. 必填字段標 *