那天早上,我正在家里忙着对付我的早餐,手机突然响了。我那个平时不太管我网站的老伙计给我发了个截图,问我:“老兄,你这博客咋回事?怎么一堆花花绿绿的东西?”我一看截图,整个人瞬间清醒了,心里“咯噔”一下。
MD,这哪是我那干净清爽的页面?整个主页,从上到下,被换成了那种低劣的在线娱乐广告,还有几个弹窗,不断地催着人点进去。我当时的第一反应就是:完了,被黑了,而且是主页这种门面直接被人给砸烂了。我赶紧把手里的东西一扔,冲到电脑前,输入网址,确认了一下。确实,我的博客主页被人偷偷摸摸地给改掉了。
这种时候,不能慌,但我心里还是骂骂咧咧的。我立刻决定了一套自救方案,必须把这个“牛皮癣”给铲掉。
第一步:先把门板焊死,不让它继续捣乱
网站被人篡改,最怕的就是黑客还在里面溜达,或者通过我的网站继续传播恶意代码。我马上登录了我的主机控制面板。我用的是一个很普通的虚拟主机,但好在控制权还在我手里。我赶紧找到文件管理那一块,把对外显示的网页服务给停了。这样,用户再访问,就看到一个错误页面,起码把那些恶心的广告给藏起来了。

服务停了,但我自己要进去操作。我特意只留了SFTP的通道,确保我能进去查文件,但外面的人绝对进不来。这是第一步,先给网站戴上“手铐”,防止它继续乱动。
第二步:像翻垃圾桶一样,找出那段毒代码
主页被改,十有八九是程序的主入口文件被动了手脚。我的站是自己搭的一个小框架,我马上用SFTP工具连上去,开始翻找文件。这种攻击,黑客通常喜欢在根目录下的核心文件里塞东西。
我先把根目录的文件列表调出来,按时间顺序重新排了一遍。果然,一眼就看到了!我的 * 这个核心文件,显示是昨晚深夜被修改的。我又瞄准了我的模板文件夹,发现里面一个叫 * 的文件,也同步被修改了。这两个文件是最容易被利用来做页面跳转和加载广告的地方。
我立马把这两个文件下载到本地。我打开编辑器,一行一行地扫。 * 文件,不出所料,文件头部被人塞了一段长长的、完全是乱码的加密代码。这玩意儿就是把我的正常内容往下挤,然后在最上面加载那个恶心的广告。
第三步:暴力拆除,把干净的零件换上去
找到了病灶,接下来就是外科手术了。我可不敢直接在服务器上编辑,万一搞砸了就全完了。我做了一个重要的操作:我找到我上周做的一个完整的网站备份包,从里面把干净的 * 和 * 给我挖了出来。
然后,我开始执行替换操作:
- 我将服务器上被污染的 * 文件彻底删除了。必须删,不能留着任何后患。
- 我把干净的 * 文件上传了回去。
- 我又对照着备份,仔细检查了 *。发现被注入的代码是在文件末尾,我手动把那一大坨没用的加密代码给删掉了,只留下了我自己写的那点东西,然后保存并重新上传了。
这还不算完,我还挨个检查了几个关键的配置文件,比如 .htaccess 和 *(虽然我不用WP,但我知道这些是常被攻击的地方),确认里面没有多余的奇怪规则,没有被植入新的跳转链接。
我又顺手看了一眼日志文件,发现那帮黑客是通过一个很久没更新的旧插件漏洞进来的。MD,老毛病又犯了,插件更新慢了就是给自己挖坑。
第四步:彻底换锁,并且把内鬼抓出来
文件是修复了,但是如果不把他们进来的路堵死,明天他们还会来。我立刻开始执行我的安全加固计划。
我先是把所有能改的密码全改了一遍。包括数据库的、FTP的、还有后台的管理员密码,全部换成了复杂的,我自己都不一定能记住的那种长密码。
我又回到我的后台用户管理界面。果不其然,发现了一个叫“guest_admin”的幽灵账号。我根本没创建过这个账号!这肯定是黑客留下的后门,方便他们下次直接进来。我毫不犹豫地把这个账号给删除了。
我把我那几个老旧的、有安全漏洞的插件全部都更新到了最新版本。不能再偷懒了。更新完之后,我重启了我的网站服务。
我紧张地输入网址,按下了回车键。熟悉的页面终于回来了,清清爽爽,那些乱七八糟的广告全部消失了。虽然折腾了将近一上午,但总算是把这个大麻烦给解决了。这回实践让我明白,网站维护就像看家护院,只要你稍微打个盹,贼就敢光明正大地翻墙进来。以后我再也不敢对那点更新提示视而不见了!

