【运维实录】从一条腾讯云安全警报,到精准溯源 WordPress 插件高危漏洞

今天手机收到多条腾讯云安全报警,原本以为是常规误报,顺手排查后却发现是一次真实的 WebShell 攻击。本文记录了从提取告警“时空锚点”、分析 Nginx 访问日志,到匹配 CVE 漏洞情报及安全清场的全过程,整理成一套通用的 Web 入侵排查 SOP。

0x01 起因:被忽视的手机警报

今天上午,手机频繁响起短信提示音,打开一看是腾讯云发来的安全告警:提示服务器检测到高危木马文件(Php.Trojan.Php.Xdkl),落盘路径在 /tmp/ 目录。

起初我并没有太放在心上。作为运维和开发,这类安全警报偶尔会遇到一些误报或自动清理的事件。正好当时手头有网站编辑的工作要处理,打算等登录面板时“顺便”看一眼。

然而,当我打开宝塔面板和云安全控制台的告警详情时,两组数据引起了我的注意:

  1. 落盘时间极其精确11:24:4211:58:46,且文件 MD5 相同。

  2. 触发进程php-fpm(运行用户为 www)。

这两个特征直接告诉我:这不是误报,这是一次真实的 Web 漏洞利用攻击! 攻击者已经利用 Web 服务的接口,成功将恶意代码写入了服务器的临时目录。

0x02 破案过程:日志比对与精准定位

服务器上运行着两个站点:一个是用于测试 Bricks Builder 的环境,另一个是给客户搭建的临时定制站点。究竟是哪一个被当成了突破口?

我开始配合 AI 辅助,按照标准的 DFIR(数字取证与应急响应) 逻辑展开溯源。

1. 抓取时间锚点,排查 Nginx 日志

既然告警给出了精确到秒的时间戳(11:24:42),且通过 php-fpm 触发,说明在那个时间点必然有对应 Web 请求。

直接在服务器终端运行命令,搜索该时间段内所有站点的 POST 请求(上传或爆破行为通常为 POST):

grep -H "30/Jul/2026:11:2[4-5]" /www/wwwlogs/*.log | grep "POST"

2. 真相大白:目标锁定客户临时站

命令输出后,结果一目了然:测试站完全没有异常请求,而客户的临时站点日志中,在 11:24:2411:24:42 之间出现了一长串来自同一个恶意 IP 的密集 POST 请求:

103.149.90.37 - - [30/Jul/2026:11:24:25 +0800] "POST /wp-admin/admin-ajax.php?action=blc_save_attachments HTTP/1.1" 400 11
103.149.90.37 - - [30/Jul/2026:11:24:26 +0800] "POST /wp-json/blocksy/v1/review-attachments HTTP/1.1" 404 138
...
103.149.90.37 - - [30/Jul/2026:11:24:41 +0800] "POST /wp-admin/admin-ajax.php?action=blocksy_companion_save_attachments HTTP/1.1" 400 11

日志特征非常突出:

  • 攻击手法:黑客利用自动化脚本,针对 Blocksy 主题及 Blocksy Companion 扩展插件的前端评价/附件上传接口进行轮询爆破。

  • 致命一击:虽然前期大部分请求返回了 400404,但最终在 11:24:42 成功命中漏洞接口,将恶意代码写入了 /tmp/phpWHr48c

0x03 匹配 CVE:锁定高危漏洞源头

拿到“Blocksy Companion + 附件上传 + 未授权”这几个关键字后,检索最新的安全情报(CVE-2026-58480):

  • 漏洞名称Blocksy Companion Pro - Unauthenticated Arbitrary File Upload(未授权任意文件上传)

  • CVSS 评分9.8 (Critical)

  • 影响版本Blocksy Companion $\le 2.1.46$(官方在 $2.1.47$ 中修复)

  • 漏洞成因:插件在检查上传文件的扩展名时,使用了 strpos() 校验 .woff2.ttf 字符串,而不是验证文件末尾的真实后缀。攻击者通过伪造双后缀文件(如 shell.woff2.php)绕过了校验。

事后,查看客户站点上安装的插件版本:Version: 2.1.45 —— 完美踩中漏洞区间!

0x04 彻底排查与无死角清场

找到漏洞根因后,必须确保黑客没有在网站内部留存“持久化后门”(常驻 WebShell)。

1. 检查关键时间窗口内的文件变动

排查从攻击发生时间(11:20)升级插件完成时间(12:10)之间,网站根目录下所有被修改或新增的 PHP 文件:

find /www/wwwroot/站点目录/ -name "*.php" -newermt "2026-07-30 11:20:00" ! -newermt "2026-07-30 12:10:00" -ls

检查结果为空!重点扫描的 wp-content/uploads/ 目录下也没有任何 .php 文件的踪影。

这说明:黑客的攻击被安全防护和系统权限限制在了 /tmp 临时目录,还没来得及向网站目录写入持久化后门,就被我们及时阻断了。

2. 闭环修复步骤

  1. 升补丁:立即将客户站点的 Blocksy Companion 插件升级至最新版本(2.1.50)。

  2. 删残余:彻底清空系统临时目录下的恶意脚本:rm -f /tmp/php*

  3. 拉黑 IP:在防火墙/宝塔安全模块中将恶意 IP 103.149.90.37 直接封禁。

  4. 重载服务:重启 php-fpm 释放资源。

0x05 经验提炼:Web安全应急 SOP

经过这次实操,再次验证了安全无小事。面对类似的 WebShell 告警,可以总结为一套 四步快速排查 SOP

  1. 一抓时间锚点:提取告警中的“精确时间(秒)”、“触发进程”与“落地路径”。

  2. 二查访问日志:利用时间戳 + grep -H 跨日志检索 POST 请求,快速锁定目标站点与漏洞接口。

  3. 三对 CVE 情报:结合接口路径与组件名称,查找对应 CVE 漏洞,核对本地组件版本。

  4. 四查窗口期后门:扫描“受袭至修复”时间窗口内的变更文件(重点关注 uploads 目录),升级组件并清理残余。

性价比超高的wordpress主机、包含自动备份、赠送域名、ai内容助理

相关文章

发表回复

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

Back to top button