每个 WordPress 网站的根目录中都有一个 xmlrpc.php 文件,该文件实际上在 WordPress 本身之前就存在了。在 WordPress 出现之前,也就是 b2 时代(如果有人知道的话),创建这个文件是为了让网站能够相互通信,并允许其他应用程序与博客本身通信。
什么是 XMLRPC?
该名称告诉了您有关其功能的所有信息。
XML — 它被设计用于接受 XML 负载。如今 JSON 是一种更为常见的格式,但是 XMLRPC 的出现比 JSON 早得多。
RPC——代表远程过程调用。它是一个系统要求另一个系统做某事的标准。如今,我们使用 API(REST 或 Graph API)来做同样的事情,但是在它们出现之前,RPC 是执行这些过程的方法之一。
XMLRPC 如何工作?
要让 XMLRPC.php 执行某项操作,您需要发出 POST 请求。如果您不熟悉浏览器的工作原理,这一步基本上就像单击表单上的“提交”按钮,这通常会启动 POST 请求。
如果您向 yourdomain.tld/xmlrpc.php 发出 POST 请求并向其提供 巴西电话号码列表 格式正确的 XML 负载,您就可以执行诸如在您的网站上创建帖子之类的操作。
XMLRPC 过去经常使用的用途之一是“pingbacks”。您在帖子上看到的那些评论表明其他人在其博客上链接到了该帖子。
WordPress XMLRPC 的潜在安全威胁
长期以来,XMLRPC 一直是一个有用的工具。如今,这种情况已不再存在。如今,XMLRPC 曾经使用的所有功能都由内置的 REST API 处理。然而,即使它不再使用,但它仍然存在。怀念这些事物的人看到它会微笑,但担心安全的人会害怕它。
XMLRPC 对 WordPress 网站构成一些安全风险,可能导致严重的 XMLRPC 攻击。
通过 XMLRPC 进行暴力攻击
第一类 XMLRPC 攻击是简单的暴力破解。由于传递给 WordPress 的 XML 有效负载的一部分包含想要采取行动的用户的登录名和密码,因此黑客很容易尝试不同的组合来猜测凭据。许多网站所有者限制用户在被阻止之前可以进行的登录尝试次数,但却不会费心阻止 XMLRPC 请求,从而为黑客留下了后门。
一旦黑客找到正确的凭证,他们就可以通过将内容插入您网站的数据库来自由地破坏您的网站。无论是帖子、页面还是评论,最终结果都是一样的。您尚未批准并且很可能不想要的内容在您的网站上发布。
充其量,这意味着垃圾评论和帖子。在最糟糕的情况下,它们可能是看似正常的帖子或评论,但却感染了恶意软件。
通过 XMLRPC 进行 DDoS 攻击
由于 XMLRPC 的使用方式之一是 pingback,因此黑客可以使用它来通过同时发出许多请求来压垮您的服务器。
pingback 会将记录写入您的数据库。从资源角度来看,写入数据库是一项昂贵的活动。虽然单个 pingback 不会损害您网站的性能,但数百甚至数千个 pingback 同时出现可能会使最强大的服务器崩溃。
这被称为 DDos 或分布式拒绝服务攻击。之所以说是“分布式”,是因为通常不是一台机器发出所有请求,而是一大堆分布在各处的机器。