网站被植入iframe跳转_数据库清理与修复_服务器层面排查
网站自动跳转到其他域名有多种表现形式:有的是首页跳转,内页正常;有的是所有页面都跳转;有的是PC端跳转,移动端正常;有的是搜索引擎爬虫跳转,正常用户不跳转(暗跳);有的是第一次访问跳转,后续不跳转。不同的表现形式对应不同的植入位置和技术手段,需要针对性排查。本文系统讲解各种恶意跳转的检测和清除方法。
第二步是排查页面源码中的恶意代码。查看网站首页和被跳转页面的HTML源码,搜索以下关键词:script、iframe、meta http-equiv="refresh"、window.location、document.location、location.href、top.location、self.location、eval、unescape、String.fromCharCode、atob、base64。恶意跳转代码通常被加密或混淆,比如eval(function(p,a,c,k,e,d){...})、document.write(unescape('%3C%73%63...'))、document.write(atob('PHNjcmlwd...'))。这些代码解密后通常是一段JS跳转或iframe嵌入代码。
第五步是排查隐藏的后门和webshell。恶意跳转只是攻击者的目的之一,网站被入侵后通常还会留下webshell后门,用于再次植入代码。使用木马扫描工具(如安全狗、云锁、360网站安全检测)进行全站扫描。手动检查upload、cache、tmp、data等可写目录,查找异常的PHP文件。搜索包含eval、assert、system、exec、base64_decode等危险函数的文件。检查后台管理员账户,删除陌生账户。检查FTP账户和数据库用户,删除陌生账户。检查定时任务,删除可疑任务。只有清除所有后门,才能避免跳转反复出现。
第四步是排查程序和数据库层面的跳转。检查网站的模板文件,恶意跳转代码经常被植入页脚模板(footer)、头部模板(header)、首页模板中。检查CMS的后台设置,有些攻击者会在后台的站点设置、广告位、统计代码位置植入跳转代码。检查数据库,搜索文章内容表、配置表、友情链接表中的恶意代码,使用SQL语句搜索包含