避免 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 连接给那个网站!

这不就是 DDoS 么 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

About the Author

R0uter

如非声明,本人所著文章均为原创手打,转载请注明本页面链接和我的名字。

Comments

  1. Hi, original author here. I am sorry I do not understand Chinese ; however of what I understand you are advising turning off the WordPress trackback mechanism altogether ?

    This is not such a good idea in general, it seems to me like a doctor shooting the pacient to treat him. Instead of taking radical measures, there is a simple fix discussed in the article : simply check that the caller of xmlrpc uses the same IP as the website reported for trackback. This sterilizes the discussed avenue for amplification.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注