昨天半夜,网站外个网站我正刷着某个小众论坛,被劫办页面突然一抖,网站外个网站跳到了一个满屏“澳门赌场上线啦”的被劫办垃圾站。浏览器地址栏里的网站外个网站域名没变,但内容完全不是被劫办我要看的。这种体验,网站外个网站相信不少人遇到过——网站被劫持了。被劫办
劫持分两种,网站外个网站一种是被劫办DNS层面的,你输入域名,网站外个网站解析出来的被劫办是别人的服务器IP;另一种是页面被注入脚本,打开正常网站的网站外个网站同时,被偷偷塞进一段iframe或跳转代码。被劫办前者是网站外个网站“路被改了”,后者是“车被装了炸弹”。我遇到过最离谱的一次,连HTTPS网站都中招,因为攻击者直接劫持了用户本地的hosts文件。
先说最简单的排查方法。换个网络试试,用手机流量而不是Wi-Fi,如果问题消失,那大概率是你家路由器的DNS被篡改了。登录路由器管理后台,把DNS改成114.114.114.114或者8.8.8.8,再重启一下。别用运营商默认的DNS,那玩意儿被污染是常态。如果换网络后依然被劫持,问题出在你电脑上。
Windows用户先按Win+R,输入cmd回车,然后敲`ipconfig /flushdns`清空缓存。接着检查hosts文件,路径是`C:\Windows\System32\drivers\etc\hosts`,用记事本打开,看看有没有奇怪的IP映射,正常文件里应该只有注释行。有的话删掉保存。还不够?检查浏览器快捷方式,右键属性,看“目标”栏的最后面有没有被追加网址,这是最阴的招——你双击图标,它先打开赌场,再跳转你的目标网站。
浏览器插件也是重灾区。装过什么“免费VPN”“网页加速器”没?去扩展管理页面,禁用所有不认识的插件。我见过一个叫“SaveFrom.net”的下载助手,表面上帮你下视频,背地里往所有页面注入广告脚本。删掉它,问题立刻消失。
如果是网站服务器本身被入侵,那更麻烦。检查网站源码,看HTML底部有没有被插入不明script标签,特别是base64编码的那种,一解码全是跳转链接。用FTP下载文件到本地,用Notepad++搜索关键词“location.href”“window.location”,全文件扫描。发现异常文件就删,然后修改所有后台密码,包括数据库、FTP、主机面板。
最容易被忽略的是CDN或云服务商的配置。有次一个朋友的网站被劫持,折腾了一周,最后发现是他在Cloudflare上的转发规则被改成了302跳转。攻击者不知道怎么拿到了他的账号权限,在控制面板里动了手脚。所以,检查所有第三方服务的登录记录,开启两步验证,别嫌麻烦。
还有个偏方,适用于临时应急。如果网站被劫持,但又急用,直接修改本地hosts文件,把域名手动指向正确的服务器IP。怎么查正确IP?用手机流量访问`ping.chinaz.com`,输入你的域名,看解析结果。然后在本机hosts里加一行“IP 域名”,保存,刷新浏览器。这招能绕过DNS污染,但治标不治本。
最后说个真实案例。上个月一个做电商的朋友,网站被劫持到仿冒支付页面,用户输完卡号密码就完蛋。他一开始以为是代码漏洞,查了三天没结果。后来发现是服务器提供商的控制台被暴力破解,攻击者改了Web服务配置,反向代理到一个钓鱼站。解决方法是重置所有系统账户,换掉SSH密钥,然后给控制台加IP白名单。折腾了五天,损失了十几个订单。
别等被劫持了才着急。平时养成习惯,定期备份网站文件,用安全扫描工具查一遍,密码别用123456。真出了事,按上面的步骤一步步来,别慌。大多数劫持都是低技术含量攻击,只要你不偷懒,能解决。