游客发表
昨晚十二点,网站我打开自家博客,被劫地址栏里明明敲的持解是我的域名,跳出来的网站却是一个满屏滚动的赌博广告页面。那种感觉就像你掏出自家钥匙开门,被劫结果发现门锁被人换了,持解屋里坐着一群陌生人嗑瓜子。网站
网站被劫持,被劫说穿了就是持解你的域名解析或者服务器被人动了手脚。我那次属于DNS被污染,网站域名解析到了别人的被劫IP上。解决思路得按顺序来,持解别一上来就重装系统,网站那等于家里进贼了你把房子拆了。被劫
先查DNS。持解在电脑上打开命令行,输入nslookup 你的域名,看解析出来的IP是不是你服务器的真实IP。如果不是,说明域名解析环节出了问题。去你的域名注册商后台,检查DNS服务器设置,看看有没有被改成奇怪的地址,比如一串数字加.top或者.xyz这种便宜后缀。我那次就是DNS服务器被改成了ns1.hacker-malicious.com,改回来,等生效,一般两小时内恢复。
如果DNS正常,那就查服务器本身。用SSH登上去,先看/etc/hosts文件,有人会往这里塞东西。再查Web服务器配置,Nginx就看nginx.conf和sites-available目录下的文件,Apache看httpd.conf。重点找rewrite规则和proxy_pass指令,黑客最爱在这两处加跳转代码。我见过一个案例,对方在Nginx配置里加了一行rewrite ^(.*)$ https://bad-site.com$1 permanent;,整个站被永久重定向到钓鱼网站,用户毫无察觉。
查完配置文件,再查源代码。有些劫持是植入在网站文件里的,比如index.php或者wp-config.php被加了后门代码。用grep -r "eval" /var/www/html这类命令搜可疑函数,或者对比你本地备份的文件,看哪里多了内容。有个朋友更惨,黑客在他每个PHP文件末尾都追加了一段加密字符串,看起来像乱码,实际上是base64编码的跳转脚本。删掉,然后全站改密码,包括数据库密码和FTP密码。
如果你用的是WordPress,还得检查插件和主题。有次我帮人排查,发现一个下载量几万的免费插件,代码里藏了个定时任务,每天凌晨三点把网站首页替换成博彩页面。删掉插件,问题解决。所以,装插件看作者,冷门插件别乱用。
最后说个容易被忽略的地方——CDN和云防护。如果你开了Cloudflare这类服务,攻击者可能直接黑进你的CDN账号,修改源站IP。登录后台,检查SSL证书、检查页面规则,把账号的二步验证打开。我遇到过一次,对方通过钓鱼邮件拿到了我的Cloudflare密码,改了DNS记录,我这边查服务器查了三天,最后才反应过来是CDN层被篡改。
整个过程大概需要两三个小时,前提是你熟悉命令行。不熟悉的话,直接联系服务器商和域名商的客服,让他们帮你排查,但别干等,自己先改密码。平时养成备份习惯,出事后能省一半时间。
网站被劫持不是小事,但也没那么可怕。按着DNS、服务器配置、源码、插件、CDN这个顺序查一遍,大多能揪出问题。要是查完都正常,那看看是不是本地电脑中招了——换个设备访问试试,说不定劫持的是你的浏览器,不是网站本身。
友情链接