WordPress攻击与PHP2Shell漏洞:HiveProtect在我们的网站上拦截了什么

2026年10月21日,PHP的两个严重漏洞以PHP2Shell之名被公开披露。在易受攻击的服务器上,这两个漏洞可能导致运行WordPress的引擎被接管。机器人并没有等待官方公告:早在10月18日,我们自己的网站就已收到仿照这一组合手法发动的WordPress攻击。HiveProtect将它们全部拦下。
我们使用HiveProtect来保护自己的WordPress网站。因此我们打开日志,做了一次统计:下面是我们收到的WordPress攻击类型、HiveProtect拦截了什么,以及是如何拦截的。为了让我们的规则保持有效,我们既不公布它们的阈值,也不公布特征签名。
WordPress攻击:3天内拦截超过448,000次请求
10月20日至23日,正值PHP2Shell成为热点之际,我们由HiveProtect保护的网站共拦截了超过448,000次请求。其中超过425,000次在抵达我们的服务器之前就被上游的过滤规则挡下,这些规则的作用是为服务器减轻负担。其余的请求抵达了我们的服务器,在那里由HiveProtect接手。
在10月16日至23日整整一周里,HiveProtect在我们的服务器上共拦下了46,325次请求,相当于每天超过6,600次。这些并不是误入的访客:其中36,293次来自已被HiveProtect封禁的攻击者,几乎全部由Web服务器本身直接拒绝,连PHP都还没启动;8,928次来自HiveShield共享名单通报的IP地址;另有1,104次是防火墙在请求本身中检测出来的攻击。
这只是看得见的那一部分。在一个月里,我们的网站还向外部访客返回了7,800多次“页面未找到”,这些访客来自3,000多个IP地址:既有点开了失效链接的真实读者,也有逐个试探页面、想找出防护薄弱网站的机器人。
HiveProtect拦下的七类攻击
在10月19日至22日的72小时内,HiveProtect在我们的网站上识破并通报了350多个发起攻击的IP地址。下图按类型对它们的403条通报进行了分类;在这些通报背后,我们区分出七类攻击。
1. 侦察兵:盘点网站
大多数WordPress攻击都从探查开始,专业人士称之为侦察。机器人会请求数十个根本不存在的页面,或不同插件各自特有的文件,以弄清网站装了什么,以及各是什么版本。
HiveProtect如何拦下它:真人访客不会接连请求一大串找不到的页面。10月,我们为HiveProtect新增了一条专门应对这种扫描的规则。这条规则在正式启用前,曾用一个月的真实流量做过测试,结果显示它本会拦下48个IP地址,其中29个是其他规则此前尚未发现的,而且本不会误伤任何访客、任何客户,也不会误伤任何搜索引擎机器人。
2. 搜寻敏感文件
这是触发警报最多的一类:被遗忘的备份、配置文件、开发工具文件夹、管理入口。只要有一个这类文件放在了不该放的地方,就可能交出数据库的钥匙。
HiveProtect如何拦下它:在WordPress网站上,任何正常访客都没有理由请求这些文件。在此期间,没有一个被提供出去,而请求它们的IP地址,一旦其意图得到确认,就立即被封禁。
3. 用户账号枚举
在尝试猜测密码之前,必须先知道用户名。72小时内,我们记录到777次旨在列出网站账号的请求。其中一场攻击行动组织得尤为严密:连续十六波,每波同时使用两到四个IP地址,这些地址分处不同国家,并伪装成较新的浏览器。
HiveProtect如何拦下它:在这次行动中,每个IP地址在发出第一个针对账号的请求时就被拒绝并封禁;其后续请求则被Web服务器本身挡了回去。结果:没有获得任何账号名称,这次行动的五十个IP地址已与我们的其他网站共享。
4. 寻找后门
有些机器人寻找的是此前入侵留下的痕迹,例如别的攻击者植入后一直留在原处的恶意文件。在已被入侵的网站上,这个文件会直接把控制权交到它们手中。
HiveProtect如何拦下它:在正常的网站上,这些文件并不存在;请求它们就暴露了意图,该IP地址会在更进一步之前就被拦下。
5. 试图跳出网站文件夹
这一类与近期的新闻有关。WordPress曾存在一个漏洞,它能迫使网站加载服务器上其他位置的文件;与PHP2Shell结合后,它可被用来执行代码。自9月中旬以来,我们在自己的网站上统计到4,220个此类请求,来自47个IP地址。没有一个请求得到满足。
HiveProtect如何拦下它:一个网址没有理由跳出网站文件夹,去服务器上的其他位置取别的文件。10月18日,仿照PHP2Shell手法发动的攻击在第一次尝试时就被HiveProtect拦下,攻击者随后遭到封禁。
6. 冒充者
许多机器人会谎报身份:它们自称是浏览器、大型搜索引擎或人工智能服务。另一些则来自数据中心里按小时租用的服务器,这种来源在真实读者中十分罕见。
HiveProtect如何拦下它:它不会轻信访客自己声称的身份。它会核实自称属于大型搜索引擎的机器人,并会考虑连接的真实来源。在此期间,有六台此类服务器在第一次请求时就被拦下。
7. 协同攻击
有些攻击行动是经过精心编排的:多个IP地址在同一时刻攻击同一个网站,数分钟或数小时后,行动再转向下一个网站,以免被察觉。
HiveProtect如何拦下它:这正是HiveShield的职责,它就是HiveProtect的共享名单。一个IP地址在某个网站上被当场抓获后,就会被通报,并在其他受保护的网站上同样遭到拒绝:7天内,仅这份名单就在我们的服务器上拦截了8,928次请求。
那么,密码尝试呢?
有一类始终保持低调:密码尝试。本月早些时候,即10月17日发现的两波集中尝试,均被拒绝,没有任何一次登录成功。
PHP2Shell:HiveProtect如何切断了这场攻击
单独来看,PHP2Shell漏洞很难利用。最简单的办法是把它与文件包含漏洞结合起来,例如前文提到的WordPress漏洞。我们的网站收到的正是这类攻击,而HiveProtect在三个层面上将其切断:
- 从第一次尝试起:文件包含请求被HiveProtect防火墙拒绝,赶在WordPress处理它之前。
- 在最靠近服务器的位置:攻击者随即被封禁。其后续请求由Web服务器本身拒绝,连PHP都到达不了:攻击再也无法得逞。
- 在所有网站上:它的地址会被通报给HiveShield,再由HiveShield共享给其他受保护的网站。
结果:这些尝试在我们的网站上无一得逞。这正是纵深防御的全部力量所在:多道屏障,每一道都能拦住攻击者。
PHP成为攻击目标,这已不是第一次:我们此前已讲述过HiveProtect如何拦截CVE-2024-4577攻击。
这些攻击为何失败:HiveProtect所做的事
- 尽早拒绝:恶意请求被拦下得越早,触及漏洞的可能性就越小,无论这个漏洞是已知的,还是尚未为人所知的。
- 长期封禁:一个已经暴露意图的IP地址,不会再有第二次机会,而且封禁在最靠近服务器的位置执行。
- 共享信息:借助HiveShield,一个网站获知的情况,会很快让所有其他网站受益。
- 识破冒充者:假机器人和可疑连接,无论它们自称是什么,都会被识别出来。
所有这些防护都在HiveProtect的功能中有详细介绍;我们的文章《WordPress攻击永不休眠》则展示了这些攻击行动每天是如何接连发生的。
您今天就可以做的事
- 安装一款会封禁攻击者、而不只是拖慢他们的WordPress防火墙,并且能共享它所获知的信息。
- 让PHP、WordPress、您的主题和插件保持最新,并删除不再使用的插件。
- 不要在可通过网络访问的文件夹里留下任何备份或配置文件。
- 使用自定义的登录地址和独一无二的密码。
安装和配置HiveProtect时,文档和帮助中心会详细说明每一个步骤。
总结
在PHP2Shell成为热点的这段时间里,我们由HiveProtect保护的网站在3天内拦截了超过448,000次请求,HiveProtect一周内在我们的服务器上拦下了超过46,000次,这些攻击分属七类。无论面对PHP2Shell还是其他攻击,它的逻辑都不会改变:尽早拒绝、彻底封禁、共享信息。
无论您是否察觉,您的网站都在遭受同样的WordPress攻击。欢迎了解HiveProtect套餐,今天就保护好您的网站。