凌晨三点,网站网站我盯着浏览器地址栏里那个陌生的被黑域名,后背发凉。跳转那是网站网站我自己的网站,但地址栏里跳转的被黑却是“yyds168.top”这种一看就活不过三个月的垃圾域名。页面全是跳转花花绿绿的棋牌广告,弹窗一个接一个,网站网站关都关不掉。被黑我的跳转第一反应不是愤怒,是网站网站耻辱——我自诩懂点技术,防火墙、被黑安全插件、跳转强密码全配齐了,网站网站结果还是被黑被人扒了底裤。
排查过程其实没什么戏剧性。跳转FTP日志显示,攻击者用了整整三天,每天凌晨用不同的IP试探我的后台登录接口。最后撞上的是一个弱口令——我的数据库管理密码是“admin123”,三年前设的,一直懒得改。就这么简单。没有高深的0day漏洞,没有社会工程学,纯粹是懒散给了黑客可乘之机。他们用这个密码登录后台,往主题文件里塞了一段恶意JS代码,只要有人访问首页,就会被302重定向到赌博站。
这类攻击的套路其实很老套。黑客扫描全网,专挑那些后台地址暴露、密码薄弱的网站下手。他们不挑食,个人博客、小企业官网、甚至学校社团页面,通通是猎物。篡改方式也大同小异:要么改.htaccess文件,要么在PHP文件头部插入跳转代码,要么直接替换首页模板。最恶心的是,他们会在服务器上留后门——就算你改回密码、删掉恶意代码,过几天他们还能通过预留的webshell溜回来。
我认识一个做独立站的朋友,去年他的电商网站被黑了整整一个月才被发现。因为黑客只做了“定向跳转”——搜索引擎爬虫看到的还是正常商品页,只有真实用户会被导去仿冒的支付页面。那一个月里,至少有几十个顾客在假页面上输入了信用卡信息。他最后赔了钱,关了站,整个人瘦了一圈。他说最绝望的不是损失,是根本不知道黑客什么时候进来的,也不知道他们到底看了多少数据。
这种事防不胜防吗?也不全是。我后来复盘,发现很多防护动作其实花不了十分钟:把后台地址从“/admin”改成一段随机字符串,用密码管理器生成20位以上的随机密码,开启两步验证,定期检查文件修改时间。就这么简单,但大多数人不会做。我甚至见过有人把数据库密码明文写在GitHub公开仓库里,评论区都有人提醒了,他回了一句“没事,我这是测试项目”。结果那个“测试项目”被黑得连渣都不剩。
网站被黑这件事,技术上其实没什么可讲的。真正让人难受的是那种被入侵的感觉——就像有人趁你不在家,撬了锁,在你客厅里撒了泡尿,还留了张“欢迎再来”的字条。你只能一边骂自己蠢,一边拿着消毒水把整个房子擦一遍。更气人的是,你根本不知道他下次什么时候来,也不知道他是不是还藏在某个你没发现的角落里。
所以我现在养成了个习惯:每个月随机挑一天,凌晨爬起来,翻一遍服务器日志,检查所有文件的修改时间。别人问我为什么这么神经质,我说,被咬过一次的人,看到任何风吹草动都会条件反射地缩脖子。这大概就是被黑后遗症吧。