易优CMS旧版漏洞与防护:还在用旧版的站点怎么补救

技术科普

易优CMS旧版漏洞与防护:还在用旧版的站点怎么补救

2026-09-20

首页 / 资讯 / 易优CMS旧版漏洞与防护:还在用旧版的站点怎么补救

汤姆科技在 2020 年前后用易优 CMS(EyouCMS)给客户做过一批站。2026 年 9 月把自家官网从易优迁到 WordPress 时,把这套系统的历史包袱重新理了一遍:旧版本公开的安全问题不少,是站点被挂马、被篡改、服务器被控最常见的入口之一。

这篇按先止血、再根治、后加固的顺序,整理一份可执行的处置清单,并附一份「怎么判断自己是不是已经中招」的自查方法。

说明:下文按版本号漏洞类型描述,不点名具体 CVE 编号。漏洞库和厂商披露会变,背编号不如看自己装的是哪个版本可靠。

一、先确认:你的站算不算「旧版」

动手前先搞清楚现状,别凭印象判断。

  1. 看版本号:后台「系统信息」或根目录 version.php,能看到当前版本。
  2. 对比官方最新稳定版:低于官方当前稳定版,就属于需要处理的范围。
  3. 重点排查三类
    • 版本号明显偏低的(长期没升级过)
    • 破解版 / 修改版 / 淘宝买的「去授权版」——这类即使版本号不低,风险也最大,因为程序被改过,谁也不知道改了什么
    • 装了大量第三方非官方插件或主题
  4. 确认你有没有源码和数据库的完整访问权。如果站是别人代建的、源码不在你手里,后面所有加固都做不了,先解决这个(见 源码交付说明)。

二、旧版高频问题清单

按「被批量利用的难度」从低到高排,前面几条是重点。

1. 前台越权登录 + 文件包含

旧版最核心的一条。攻击者可以从前台构造请求伪造管理员身份,绕过登录直接进后台,再结合插件下载类功能做文件包含,最终在服务器上执行任意代码(也就是俗称的 GetShell)。

危害等级最高:一旦成功,整站权限和服务器权限都会丢。

2. 任意文件上传

后台的头像上传、插件上传这类模块,如果只校验扩展名不校验内容,攻击者可以传一个 .php 上去并直接访问,等于把木马放进你家里。

判断方法:检查上传目录里有没有 .php / .phtml / .phar 这类文件——正常业务是不该有的。

3. 后台 SQL 注入

后台部分参数没做过滤,恶意参数可以拼进 SQL 语句,导致数据库被拖走、数据被改、管理员密码被读。

判断方法:看用户表和订单表有没有异常数据,后台有没有多出陌生管理员。

4. 模板代码执行

旧版模板编辑模块对写入的代码不做限制,攻击者可以在模板文件里插一段可执行代码,调用系统命令。

判断方法:检查模板目录下的文件有没有近期被改过,有没有 evalassertsystem 这类调用。

5. XSS 跨站脚本

备案号、留言、公告这些输入字段过滤不足,可以植入恶意 JS。危害不像前几条那么直接,但会被用来偷 Cookie、劫持后台会话、弹窗挂马引流。

6. 破解版 / 盗版资源后门

非官方修改的程序、第三方盗版插件和主题,普遍存在预留后门、静默传马、远程控制的情况。这类问题没有「补丁」可打,因为问题就在程序本身。

三、应急止血:今天就能做完的四件事

如果暂时没法升级,先把这几件事做了,能挡住绝大多数批量扫描和自动化攻击。

1. 先做完整备份(这是第一步,不是第二步)

源码和数据库都备份一份,下载到本地或异地。理由很实际:清理木马、改权限、改配置都可能把站搞坏,没有备份就没有退路。备份文件不要留在网站目录里,否则等于把备份送给攻击者。

2. 查马清马

  • 用官方「系统助手」之类的工具全盘扫描,删除未知的 PHP、伪装成图片的脚本文件。
  • 拿官方原版同版本源码做文件比对,把被篡改的核心文件还原回去。
  • 特别注意 uploadsruntimedata 这些目录里不该出现的脚本文件。

3. 重置权限与密码

  • 改掉超级管理员密码,用字母 + 数字 + 特殊符号的组合。
  • 删除或禁用用不到的账号,尤其是长期不用的「测试账号」。
  • 关闭后台的匿名访问和游客权限。
  • 开启登录验证码、登录失败锁定,限制单 IP 短时间内的尝试次数。

4. 封掉漏洞入口

在 Nginx 里拦掉攻击常用路径,同时把后台限制到固定的办公 IP:

# 上传目录禁止执行任何脚本(这条最重要)
location ~* ^/(uploads|weapp)/.*\.(php|php5|phtml|phar|asp|aspx|jsp)$ {
    deny all;
}

# data 目录不该被外部直接访问
location ~ ^/data/ {
    deny all;
}

# 拦掉 .git / .env 这类敏感文件
location ~ /\.(git|env|svn|htaccess) {
    deny all;
}

# 后台限制到办公固定 IP(把 1.2.3.4 换成你自己的出口 IP)
location ~ ^/(admin|login)\.php$ {
    allow 1.2.3.4;
    deny all;
}

改完记得 nginx -t 测试再 reload,别直接重启生产。

如果站点已经被扫出问题、又不确定清干净了,稳妥做法是先临时下线(改 hosts 或加维护页),处理完再放出来。搜索排名掉几天,比被人挂马几个月好。

四、根治:升级,或者迁走

应急只是止血。旧版易优的安全问题,根治手段只有一个:升到官方最新稳定版。

1. 能升级就升级

  • 版本明显偏低的,先升到官方最新的稳定版。
  • 升级前照例先备份。
  • 升级后重新跑一遍查马——因为升级不会自动清掉之前种下的木马。
  • 所有破解版、修改版、第三方非官方插件和主题,全部换成官方正版资源。

2. 升级不了怎么办

现实中经常升不了:二次开发改得太多、模板不兼容、客户有新功能依赖旧结构。这时候只能手动补:

问题 手动处置方向
文件上传 强制校验扩展名 + MIME 类型,只放行图片,限制文件大小和命名
SQL 注入 所有前后台传参做转义过滤,开启全局参数净化
命令执行 关闭前台模板编辑权限,限制后台模板写代码
XSS 用户输入输出一律做 HTML 转义,过滤脚本标签

但要清楚:手动补是拖时间,不是解决。旧版没公开的问题你补不到,下一个漏洞出来还得再补一次。

3. 什么时候该考虑迁走

我们自己的判断标准是这三条——任意一条成立,就值得评估迁移而不是继续修:

  1. 站点已经被入侵过一次以上,清干净了又被挂马;
  2. 程序被改得自己都说不清改了哪里,升级必然出问题;
  3. 站点的核心价值在内容和收录,而不是那套 CMS 本身的功能。

第 3 条最关键。如果这个站主要是给海外客户看的询盘站,那么内容、收录、询盘流程才是资产,CMS 只是容器——把内容迁到一个长期维护、生态成熟、能持续升级的系统上,比守着旧版本每年补漏洞划算。

五、服务端加固:权限 + 解析规则

这部分是底层防护,配置对了能挡掉一大批利用。

1. 权限原则

核心程序只读,上传目录可写但不可执行。

很多教程写 chmod -R 0444 目录,这在 Linux 上会把目录也变成不可进入(目录需要 x 权限才能访问),改完后台可能直接打不开。正确做法是文件和目录分开处理:

# 目录:只读 + 可进入(5 = r-x)
find data/weapp data/model public -type d -exec chmod 0555 {} \;

# 文件:只读(4 = r--)
find data/weapp data/model public -type f -exec chmod 0444 {} \;

# 上传目录:可读写,但不给执行
find uploads -type d -exec chmod 0755 {} \;
find uploads -type f -exec chmod 0644 {} \;

# 入口文件只读
chmod 0444 index.php

三点提醒

  • 改之前先在测试环境验证。不同版本对某个目录的读写要求不一样,改错会导致后台报错。
  • 文件属主要跟 PHP 运行用户一致(通常是 www),否则权限再对也读不了。
  • 光靠权限不够:Linux 权限管不住「PHP 进程自己解析上传的脚本」,一定要配合上面那条 Nginx deny 规则一起用。

2. 让网站运行账号降权

站点不要用 root 或管理员账号跑。单独开一个只能读写站点目录的账号,这样即使被 Getshell,攻击者拿到的也只是一个受限账号,不是整个服务器。

3. Windows 服务器

没有 chmod,在文件属性 → 安全里手动配:取消匿名用户(IUSR / IIS_IUSRS)对程序目录的写入和执行权限,只给上传目录写权限。

六、后台与日常运维强化

  • 开扫码登录:装官方扫码登录类插件,关掉账号密码登录入口,密码爆破这条路直接堵死。
  • 开插件安装密码:旧版默认没有插件安装验证,等于谁进后台谁能装东西。务必开启密码验证。
  • 改后台路径:把默认的 /admin/login.php 换掉,能挡掉大量自动化扫描。
  • 装安全防护插件:官方有安全类插件,可以拦 SQL 注入、XSS、恶意扫描和漏洞探测。
  • 每周查马:用系统助手扫一遍全站,跟官方原版对比文件完整性。
  • 每日备份:源码 + 数据库,自动备份并且异地留一份。备份存在同一台服务器上等于没备。
  • 接 WAF / CDN:拦批量扫描、CC 攻击和异常 IP。这是补充手段,不能替代升级。

七、自查:怎么判断已经被入侵了

下面六个信号,中一个就该立刻排查。

信号 具体表现
文件异常 目录里出现不该有的 PHP 文件,或正常文件被最近改过
搜索异常 site:你的域名 出现博彩、色情、代孕等无关词
收录异常 索引量突然暴涨或暴跌,多出大量陌生 URL
后台异常 多出陌生管理员账号,插件列表里有没装过的插件
服务器异常 CPU、内存、流量在没访问量时异常升高
首页异常 页面被插入隐藏链接、JS 跳转,或被加了用户看不见的层

两个能直接用的排查命令(在站点根目录执行):

# 找出最近 7 天被修改过的 PHP 文件(注意排除缓存和日志目录)
find . -name "*.php" -mtime -7 -not -path "./runtime/*" -not -path "./cache/*"

# 粗筛可疑代码特征(会有误报,命中后逐个人工看)
grep -rEl "eval\(|assert\(|base64_decode\(|gzinflate\(|shell_exec\(|passthru\(" \
  --include="*.php" .

grep 那条会命中正常的框架代码和加密类库,误报很正常,它的作用是把范围从几万个文件缩到几十个,剩下的靠人工判断。

八、已经中招了:恢复顺序

顺序比动作重要,跳步容易处理不干净。

  1. 先断攻击通道,不是先删文件。把站临时下线或封掉攻击 IP,否则你一边清它一边重新种。
  2. 完整备份现场(源码 + 数据库 + 日志)。这份备份不是用来恢复的,是用来查入侵时间点和入口的。别急着删
  3. 清理木马:按上文第三节查马,同时还原被篡改的核心文件和模板。
  4. 改所有密码:后台账号、数据库密码、FTP、服务器 SSH、面板账号。全部改,因为不清楚泄露了哪一个。
  5. 补漏洞:升级到最新版,或至少把手动补丁打上。不补漏洞,前面全白做。
  6. 确认干净后再上线,上线后连续观察一周的日志和文件变动。
  7. 搜索引擎申诉:如果站点被搜出违规词,在做完清理后到 Google Search Console、百度搜索资源平台提交申诉,请求重新抓取。这一步不做,可能会挂着黑帽标记很久。

九、长期建议

  • 不用破解版。省下的授权费,抵不上一次被挂马的损失。
  • 保持升级。安全补丁是厂商免费给你的,不装是浪费。
  • 后台不裸奔。改路径、限 IP、开二次验证,三件事一起做。
  • 源码和数据在自己手里。这样才能自己升级、自己排查、换服务商的时候走得掉。
  • 备份要异地。同一台服务器上的备份,在服务器被控时等于不存在。

旧版易优的安全问题,根源是版本老旧、校验缺失、权限过宽、用了盗版资源这四件事。处置优先级也一样:

升级(根治)> 权限加固(底层)> 代码手动修补(兜底)> 防火墙拦截(辅助)> 日常运维(长效)

临时防护只能挡批量攻击。真正把风险清掉,还是得升到官方最新正版,再配上规范的权限和运维。

如果你手上的站是旧版易优、又不确定该升级还是该迁走,可以把当前版本号、有没有二次开发、被入侵过没有这三条发到 联系页,我们帮你判断值不值得救。旧站改造和数据迁移属于 企业定制 的范围,会先出范围说明再开工。电话 0755-28896137,深圳客户可以到龙华大浪当面把后台打开一起看。

相关服务: 外贸独立站 · AI 小程序 · 联系立项