网站被黑了?被挂马后的应急处理与清理步骤

网站被黑了?被挂马后的应急处理与清理步骤

打开自己的网站,没看到首页,浏览器直接跳转到一个博彩网站。你刷新,还是一样。用手机打开,也一样。

或者更惨——谷歌搜你的网站,标题下面跟着一行红字:“该网站可能包含恶意软件,继续访问可能损害您的计算机。”

那一瞬间,你的第一反应是什么?慌。然后呢?不知道。

我经历过。今天就告诉你,被挂马之后,每一步该做什么。


先看一个数据

某安全厂商统计,超过60%的网站被黑事件,在被发现之前已经持续运行了30天以上。也就是说,黑客在你的网站里住了整整一个月,你都不知道。为什么发现不了?因为很多挂马是有条件的——只对搜索引擎爬虫跳转,普通访客看正常。你的排名被降了,你还蒙在鼓里。


第一步:确认——是真的被黑了,还是误报?

收到“网站不安全”的提示,先别慌。用几个不同的方式确认:

  • 用不同浏览器打开(Chrome、Edge、手机浏览器)
  • 用在线工具检测(Google Safe Browsing、VirusTotal)
  • 查看网站源码:右键→查看网页源代码,看看有没有不认识的JS链接、iframe

如果多个方式都显示异常,基本可以确定被挂了。


第二步:隔离——别让伤害扩大

发现被黑后,第一时间做的事不是“找木马”,而是“切断”:

  1. 关停网站:返回503状态码,或者上传一个maintenance.html临时页面。告诉用户“网站维护中”,别让访客看到恶意内容。
  2. 备份当前状态:把整个网站打包下载,虽然是被黑的版本,但备份下来用于分析。同时备份数据库。

反常识点:很多人一发现被黑,就急着删文件。别删。先备份。你不知道黑客改了什么,删错了可能把正常文件也删了。先留个备份,再动手。


第三步:找木马——恶意代码藏在哪里

这是最花时间的步骤。木马一般藏在几个地方:

1. 公共模板文件
index.phpheader.phpfooter.phpfunctions.php。黑客喜欢在这些文件里加一段恶意代码,这样全站都会受影响。

用命令行找最近被改的文件(假设网站目录在/var/www/html):

bash

find /var/www/html -type f -mtime -7 -ls

看看过去7天哪些文件被改过。重点排查这些文件。

2. .htaccess文件
/var/www/html/.htaccess 或子目录里的.htaccess。黑客可以在里面加跳转规则,比如“如果是搜索引擎爬虫,就跳转到恶意网站”。

打开.htaccess,看有没有陌生的RewriteRule

3. 上传目录
/uploads/ 或 /wp-content/uploads/。黑客可能上传了一个webshell(一句话木马),文件名伪装成image.jpg.php

用命令找可疑的PHP文件:

bash

find /var/www/html -name "*.php" -type f -exec grep -l "eval(" {} \;

eval( 是常见的一句话木马特征。

4. 数据库
有些挂马把恶意代码塞进数据库,比如文章的正文或标题里。用SQL查询找<script>标签。


第四步:清理——干掉木马,恢复文件

方法一:手动清理(如果你懂代码)

  • 删除恶意文件
  • 删除.htaccess里的恶意规则
  • 清理公共文件里的恶意代码
  • 修复被篡改的index.php

方法二:重装核心文件(推荐)
如果你用的是WordPress、织梦、帝国CMS等程序,最稳妥的办法是:

  1. 从官网下载一份全新的程序包
  2. 删除网站目录下的wp-adminwp-includes(WordPress为例)
  3. 上传新的程序文件(保留wp-content里的主题、插件、上传文件)
  4. 重装核心文件

这样能保证核心文件是干净的,又不会丢失数据。

方法三:恢复备份(最省心)
如果你有最近的干净备份(比如一周前的),直接恢复备份,然后升级所有程序、修改密码。这是最快、最安全的方法。

前提:你确定备份是干净的。如果备份也被黑了,那恢复也没用。


第五步:修复漏洞——防止再次被黑

清理完木马,不等于完事了。如果不堵住漏洞,明天还会被黑。

1. 升级所有软件

  • WordPress版本、主题、插件全部升级到最新
  • 如果不是WordPress,升级你的CMS程序

2. 改密码

  • 服务器root密码
  • 数据库密码
  • 网站后台管理员密码
  • FTP/SSH密码

3. 检查后门用户
登录网站后台,看看有没有不认识的管理员账号。有就删掉。

4. 检查定时任务
黑客可能留了定时任务,每天自动下载木马。

bash

crontab -l
cat /etc/crontab

看到wgetcurl去陌生IP的,删掉。

5. 加固服务器

  • 禁用root远程登录(参考之前的安全设置文章)
  • 安装fail2ban防暴力破解
  • 开启网站防火墙(如宝塔的付费防火墙、Wordfence)

第六步:申请解封(如果被搜索引擎标记)

清理完后,如果你的网站被谷歌或百度标记了“不安全”,要去申请解封。

谷歌

  1. 注册Google Search Console
  2. 验证网站所有权
  3. 在“安全问题”里查看样本
  4. 确认清理完毕后,点击“申请审核”

谷歌审核通常需要几天到一周。审核通过后,红色警告会消失。

百度
百度站长平台里有“安全检测”功能,可以申请重新检测。


一个真实案例

有个朋友的WordPress网站被挂了赌场广告。用户打开网站,页面底部会多出一段看不见的链接。谷歌搜他的品牌词,结果页标题下面跟着红字:“该网站可能已被盗用”。

他慌了,差点重装系统。我帮他排查:先用find命令找到最近7天被改的文件,发现functions.phpfooter.php被加了恶意代码。删掉恶意代码,升级所有插件,修改所有密码。然后去Google Search Console申请审核,一周后恢复正常。

他说:“以前觉得备份没用,这次之后,我每周备份一次。”


最后一句

被黑不可怕,可怕的是不知道怎么处理。更可怕的是,处理完了漏洞没堵上,下周又被黑。

今天这篇文章,存下来。万一哪天你的网站出问题,照着步骤走:确认→隔离→找木马→清理→修复漏洞→申请解封。

有条理,就不慌。

另外,现在就去检查你的备份。没有的,今天配一个。

知识库

服务器内存怎么选?DDR4、DDR5、容量、频率一篇看懂

2026-4-17 14:05:13

知识库

Serverless的隐性开支:当"按需付费"变成"按需浪费"

2025-11-17 12:09:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧